tomcat 部署 https
tomcat 部署 https[*]在 startssl 上申请认证, 最后你会得到两个文件: ssl.key 和 ssl.crt, 建立一个新目录, 把这两个文件拷贝到该目录
[*]下载 https://www.startssl.com/certs/ca.pem 和 https://www.startssl.com/certs/sub.class1.server.ca.pem
[*]运行
cat ssl.crt ca.pem sub.class1.server.ca.pem > chain.crt
[*]运行
openssl pkcs12 -export -in chain.crt -inkey ssl.key -out keystore.pkcs12 -name tomcat
使用密码 "PASSWORD"
[*]运行 (可选, 该步为校验步骤)
keytool -list -rfc -keystore keystore.pkcs12 -storetype pkcs12
注意: 结果中要含有如下的一行 "Certificate chain length: 3"
[*]运行
keytool -importkeystore -srckeystore keystore.pkcs12 \
-srcstoretype PKCS12 -destkeystore keystore \
-srcalias tomcat -destkeypass PASSWORD
(注意: 此处的 PASSWORD 需要与目标 store 的密码一致)
[*]运行
cp keystore $TOMCAT_HOME/conf/
[*]修改 $TOMCAT_HOME/conf/server.xml, 去掉 SSL Connector 附近的注释, 内容如下:
[*]把其余的 redirectPort="8443" 改为 redirectPort="443"
[*]重启 tomcat
[*]调整防火墙,启用 443 端口
[*]备份 ssl.key 和 ssl.crt 到安全位置, 删除整个目录, 设置 $TOMCAT/conf/keystore 的属主为 tomcat 的运行用户, 设置权限为 640 或更低权限
注意事项:
[*]ssl.crt ca.pem sub.class1.server.ca.pem 都必须是 PEM 格式 (看起来类似base64)
[*]所有步骤中建议使用同一套密码
[*]此处对密码的要求不是很高, 因为运营机器上的 root 用户能同时拿到 keystore 和 server.xml, 密码再复杂也无效, 非 root 用户拿不到 keystore, 所以是安全的
[*]如果有更高的安全要求, 建议修改 tomcat 的启动脚本, 在启动时手动输入密码, 设置为环境变量, 然后在 server.xml 中使用环境变量来获得密码 (仍然有问题, root 不在自己手上, 安全经常是幻像)
[*]Firefox, Chrome, IE 下均不会报警, 但 Java 客户端仍然不能使用, 解决方法如下
[*]运行: wget https://www.startssl.com/certs/ca.pem
[*]运行: keytool -importcert -trustcacerts -file ca.pem -keystore foo -storepass changeit
[*]把 foo 拷贝到你的程序中
[*]
把如下两行代码加到你的程序 main 函数中:
System.setProperty("javax.net.ssl.trustStore", "/path/to/foo");
System.setProperty("javax.net.ssl.trustStorePassword", "changeit");
http://onexin.iyunv.com/source/plugin/onexin_bigdata/https://blogger.googleusercontent.com/tracker/6324560-935051461365761190?l=blog.lidaobing.info
页:
[1]