感覺阿里的太繁瑣,這要認證那要認證的,實在忍受不了,果斷選國外的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>