Java CA PEM文件到jks tomcat信任库

Java CA PEM文件到jks tomcat信任库,java,tomcat,ssl,x509certificate,cas,Java,Tomcat,Ssl,X509certificate,Cas,我得到了一个由某个CA签署的p12公钥/私钥。我有一个本地tomcat服务器,我正在进行开发工作。我是安全新手,但我认为需要将CA公共证书放入我的tomcats truststore。(我正在尝试使用CAS获得x509证书) 我如何让我的tomcat(和JVM)信任这个CA?有没有办法将CA公共证书从p12中取出并放入我的tomcat truststore?(我还从firefox导出了证书,以获得CA的PEM文件) 我看到很多关于jsk到pem的帖子,但不是相反。我只需要CA(我想):将证书(任

我得到了一个由某个CA签署的p12公钥/私钥。我有一个本地tomcat服务器,我正在进行开发工作。我是安全新手,但我认为需要将CA公共证书放入我的tomcats truststore。(我正在尝试使用CAS获得x509证书)

我如何让我的tomcat(和JVM)信任这个CA?有没有办法将CA公共证书从p12中取出并放入我的tomcat truststore?(我还从firefox导出了证书,以获得CA的PEM文件)


我看到很多关于jsk到pem的帖子,但不是相反。我只需要CA(我想):

将证书(任何类型的p12、x509)导入tomcat信任存储非常简单。按照以下步骤,您应该能够将证书导入到tomcat的信任存储中

  • 查找tomcat正在使用的JRE(而不是JDK)。请参阅tomcat启动JRE_主页
  • 使用JREBin目录中的Keytool,使用以下命令将随浏览器导出的证书导入信任存储

    jre\bin\keytool -importkeystore -srckeystore .\Certs\sample.p12 \
        -destkeystore .\Certs\server.keystore -srcstoretype pkcs12 \
        -deststoretype jks -srcstorepass changeit -deststorepass changeit
    
  • 并在提示是否信任证书时键入YES

  • 参考:


    首先,不能保证您拥有的p12文件包含CA证书,它包含的最终实体证书是使用该证书颁发的。尽管密钥库包含中间证书(如前所述)很有用,但在链的末尾包含CA并不是必需的:如果远程方不信任它,将其添加到链中不会有什么不同(如前所述)

    您可以使用yourstore.p12中的opensslpkcs12-nokeys-out output.pem-来检查这一点。使用文本编辑器查看
    output.pem
    的内容,应该可以看到是否包含CA证书。如果没有,请联系颁发证书的CA,他们应该能够向您提供证书

    然后,要构建用作信任库的新密钥库,请使用
    keytool-import
    ,例如
    keytool-import-keystore-mytruststore.jks-file\ca\u file.pem
    。(该CA文件应仅包含CA的证书,而不包含其他证书。如果您是从以前的输出复制此证书,请仅使用相关的
    --BEGIN--END--
    块。)


    您并不是说您希望此信任库用于验证连接到Tomcat服务器的客户端,还是用于在Tomcat中运行的Web应用程序所建立的连接(在这种情况下,它们是客户端)。在何处以及如何设置此信任库将取决于它。(在第二种情况下,从默认的
    cacerts
    文件的副本开始,而不是从头创建一个新的存储区,这通常很有用。)

    OK,我的困惑在于不理解我的公钥和CA公钥。keytool-importkeystore不会也导入我的公钥吗?我不想(我不认为)我只想让tomcat接受CA签署的任何密钥。
    -importkeystore
    也会复制私钥,这不是问题中所问的(私钥一般不应该在信任存储中分发)。不是完全相同的问题,我正试图从PEM(或p12)中提取CA证书文件不合并密钥库或转换格式。布鲁诺给出了正确的答案。有用的东西永远不会出现在Oracle文档中,而是出现在这个网站的某个地方