我需要从运行在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