如何将Apache / Tomcatconfiguration为信任服务器到服务器https请求的内部证书颁发机构

我需要从运行在Apache / Tomcat上的自己的Web服务器执行Web服务调用。 在Linux上运行的Apache / Tomcat需要通过使用内部证书颁发机构(CA)进行SSL的HTTPS向运行IIS的Microsoft服务器发出调用请求。

我如何让Apache / Tomcat信任来自此CA的正确的根证书?

另外,我如何testing这个信任正在工作? 我假设来自托pipeApache / Tomcat的服务器的浏览器请求是不够的。

我假设你已经将CA证书导出到一个文件,比如“internal-ca.pem”。 另外,我假设它是启动到IIS服务器的SSL连接的Tomcat。

您必须使用Java keytool将证书导入您的Tomcat引擎正在使用的Java密钥库中。 CA证书的密钥库是$ JAVA_HOME / jre / lib / security / cacerts。 因此,要将新的internal-ca.pem证书导入到此密钥库,您可以使用:

$JAVA_HOME/bin/keytool -importcert \ -keystore $JAVA_HOME/jre/lib/security/cacerts \ -file /path/to/internal-ca.pem \ -trustcacerts -alias internal-ca-1 

密钥库的默认密码是: changeit

validation您的证书是否在密钥库中:

 $JAVA_HOME/bin/keytool -list \ -keystore $JAVA_HOME/jre/lib/security/cacerts -v | less 

testing到服务器的连接:

 openssl s_client -CAfile /path/to/internal-ca.pem -connect server:port 

这应该给你,在其输出结束:

 Verify return code: 0 (ok) 

如果你想testing从Tomcat内部的信任,你将不得不写一些testing代码来做到这一点。 对不起,我不知道任何Java。 🙂

 SSLProxyEngine on SSLProxyCACertificateFile /etc/ssl/internal-ca.crt SSLProxyVerify require