Tomcat信任https网站
在使用微信发送告警的时候出现无法使用https网址的问题,解决方式如下
导出微信的证书
openssl s_client -connect qyapi.weixin.qq.com:443 2>&1 |sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > weixin.crt
使用SSLPoke.class确认是否还有上层证书,如果存在也导入
java -Djavax.net.debug=ssl SSLPoke qyapi.weixin.qq.com 443
看到有类似下面的则表明有上层证书:
1 | AuthorityInfoAccess [ |
将http://gn.symcb.com/gn.crt下载下来,并导入sudo keytool -import -v -trustcacerts -alias gnsymcb -keystore $JAVA_HOME/jre/lib/security/jssecacerts -file gn.crt
导入到jdk中
sudo keytool -import -v -trustcacerts -alias qyapiweixin -keystore $JAVA_HOME/jre/lib/security/jssecacerts -file weixin.crt
更新证书
需要先删除再导入新的1
2sudo keytool -delete -keystore $JAVA_HOME/jre/lib/security/cacerts -alias qyapiweixin
sudo keytool -import -v -trustcacerts -alias qyapiweixin -keystore $JAVA_HOME/jre/lib/security/cacerts -file weixin.crt
指定tomcat使用证书(非必须)
1 | vim /usr/local/apache-tomcat-8.5.6/bin/setenv.sh |
或者在 /usr/local/apache-tomcat-8.5.6/conf/server.xml的ssl配置部分指定keystore,如下
1 | <Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol" |