感觉阿里的太繁琐,这要认证那要认证的,实在忍受不了,果断选国外的COMODO,一年也就169。
过程:
1、购买好证书,填写对应资料,找一个网上生成CSR的在线工具,将生成的私钥保存好(请务必保存好私钥key文件,证书安装的时候需要用到)
2、再这里可能需要做个域名所有权的认证,可以通过邮箱、DNS校验,校验通过后,很快就会把证书发送至你的邮箱。
3、下载证书,里面一般有四个主要文件,利用在线工具https://www.chinassl.net/ssltools/convert-ssl.html 合成pfx格式,各项选择如图:
4、这里我有两台服务器,一台是tomcat直接运行在宿主机上的,一台tomcat运行在docker容器中,运行在宿主机上的tomcat配置较简单,修改server.xml配置文件即可,记得将8443端口改成443,重启tomcat。
容器中的由于之前的运维部署的,不清楚具体run需要传递或映射哪些文件路径,所以这里不采用run映射的方式配置。配置流程:docker exec -it tomcat /bin/bash 命令进入容器,创建用于存放证书的路径,使用‘docker cp /本地 容器:容器路径 ’将宿主机上的证书传入docker容器中 ,修改server.xml配置文件,docker inspect tomcat | grep IPAddress 查看容器IP ,iptables -t nat -A DOCKER -p tcp --dport 443 -j DNAT --to-destination 172.17.0.3:443 将宿主机443端口映射到docker容器中。至此整个证书的部署算是完成了,这里不建议大家采用这种方式部署,因为如果下次重新run一次容器,那所有的配置就都失效了。
5、最后附上一点关于tomcat如何将所有http请求自动跳转为https,在web.conf文件</welcome-file-list>中加这样一段:
<login-config>
<!-- Authorization setting for SSL --> <auth-method>CLIENT-CERT</auth-method> <realm-name>Client Cert Users-only Area</realm-name> </login-config> <security-constraint> <!-- Authorization setting for SSL --> <web-resource-collection > <web-resource-name >SSL</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint>