CA PEM文件到jks tomcat truststore

时间:2014-08-17 18:03:22

标签: java tomcat ssl x509certificate cas

我获得了由某个CA签署的p12公钥/私钥。我有一个本地tomcat服务器,我正在进行开发工作。我是安全的新手,但我相信需要将CA公共证书放入我的tomcats信任库。 (我试图让x509证书与CAS合作)

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

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

2 个答案:

答案 0 :(得分:2)

首先,不保证您拥有的p12文件包含颁发了其包含的最终实体证书的CA证书。虽然密钥库包含中间证书很有用(如here所述),但在链的末尾包含CA是不必要的:如果远程方不信任它,则将其添加到链中赢了没有区别(正如所讨论的here)。

您可以使用openssl pkcs12 -nokeys -out output.pem -in yourstore.p12进行检查。使用文本编辑器查看output.pem的内容,您应该看看是否包含CA证书。如果没有,请联系颁发证书的CA,他们应该能够提供给您。

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

您不是说您是否希望此信任库用于验证连接到Tomcat服务器的客户端,还是用于在Tomcat中运行的Web应用程序进行的连接(在这种情况下,它们是客户端)。设置此信任库的位置和方式取决于它。 (在第二种情况下,从默认cacerts文件的副本开始,而不是从头创建新商店通常很有用。)

答案 1 :(得分:0)

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

  1. 找到tomcat正在使用的JRE(不是JDK)。请参阅tomcat启动以获取JRE_HOME。
  2. 使用JREBin目录中的Keytool,使用以下命令将使用浏览器导出的证书导入信任存储区。

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

  4. 参考:

    http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html

    http://support.citrix.com/proddocs/topic/command-center-40/cc-install-import-cert-truststore-tsk.html