如何在unix服务器中添加SSLC证书

时间:2014-06-30 23:17:15

标签: ssl ssl-certificate

我有一个java web项目,我使用了很少的证书来联系URL。现在我已将项目部署为Unix服务器中的WAR文件,并且我的项目存在证书问题。

我在本地商店有证书,我需要把它们放在Unix服务器上,需要将它们添加到Tomcat中的keytool。我该怎么做。

我可以通过keytool获得一个示例吗?

2 个答案:

答案 0 :(得分:1)

至少有3种方法可以解决这个问题:

  • 您可以将证书导入JRE的默认信任库(通常在$JAVA_HOME/lib/security/cacerts中)。这将影响使用该JRE的所有应用程序(除非它们覆盖默认设置)。您还需要对该cacerts文件具有写入权限才能执行此操作。

  • 您可以将证书导入到您将配置为Tomcat默认信任库的本地密钥库中。通常,您可以复制默认的cacerts文件并将证书导入此副本,或者您可以创建新的密钥库并仅导入您知道所需的证书(keytool -import -keystore ...将创建密钥库文件,如果它不存在)。这可以通过在catalina.sh(或.bat)中设置其他系统属性来在tomcat中完成:在JAVA_OPTS中,您可以添加-Djavax.net.ssl.trustStore=/path/to/local/truststore.jks例如(以及其他相关属性)

  • 您可以使该证书仅由应用程序中的某些连接使用(或以编程方式设置默认的SSLContext)。为此,您需要更改应用程序,以便加载密钥库,使用它初始化TrustManagerFactory,并传入SSLContext。然后,如何使用SSLContext取决于您正在使用的客户端库。 this answer中有一个例子。

无论哪种方式,您都可以使用以下方法将证书(无论是CA证书还是特定服务器证书)导入您选择的信任库:

keytool -import -file cert.pem -alias "some name" -keystore truststore.jks

(如果使用编程路径,您还可以在内存中创建密钥库并动态加载证书文件,如this answer所示。使用密钥库可能更容易,由您来评估优缺点您要使用的部署。)

答案 1 :(得分:0)

我得到了答案。我们需要找到tomcat正在使用的java文件,我们需要将keytool添加到该特定的东西。

这是tomcat有cacerts .ie的地方。 tomcat使用的java。

等/ PKI /爪哇/ cacerts中

Keytool命令:

keytool -import -alias ttg-lys-cm1 -file /var/lib/certificates/ttg-lys-cm1.cer -keystore“/ etc / pki / java / cacerts”

一旦你这样做重启tomcat,它就可以了。

由于 pradeepa