Tomcat https自制证书和浏览器配置
Tomcat配置成https后,如过使用的是自己的证书,登陆首页时,总是提示证书安全问题,网上的很多资料有描述,但比较复杂,找了几个配置不成功,现在描述一个比较简单的方法。
生成证书的脚本
#!/bin/bash
if [ $# = 1 ] ; then
IP=$1
fi
echo "https trust ip: $IP "
if [ -d gen ]; then
rm -r -f gen
fi
mkdir -p gen
KEY=gen/demo.keystore
PASSWD=demo
if [ -f $KEY ]; then
rm -f $KEY
fi
#server
keytool -genkey -v -alias demo-keyalg RSA -keypass $PASSWD -keystore $KEY -storepass $PASSWD -validity 3650 -dname "CN=$IP,OU=demo,L=beijing,ST=china,C=cn"
#client
keytool -keystore $KEY -keypass $PASSWD -storepass $PASSWD -export -alias demo -file gen/demo.cer
如上的demo.keystore是供tomcat使用的证书
demo.cer是供客户端使用的证书
其中的IP,必须是提供服务的web服务地址,否则浏览器登陆时仍会出现证书安全问题
tomcat配置
Conf/server.xml的配置
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="demo.keystore" keystorePass="demo"
URIEncoding="UTF-8"
/>
注意clientAuth使用仅服务端认证,否则使用双向的认证,更复杂一些,网上有相关资料
浏览器证书导入
demo.cer 导入到浏览器的客户端中,Windows下导入的步骤:
IE/Chrome: 双击demo.cer ,导入到“受信任的根证书颁发机构”下
FireFox:工具/选项/高级 下点击“查看证书”,在“证书机构”选项卡中导入demo.cer ,然后选择“IP“的证书项,点击“编辑信任”,选择信任即可
以上设置完成后,使用https://IP 访问web服务器,此时就不会再提示“证书信任”问题了