1、申請CA證書,可以在騰訊雲或者阿里雲申請到免費的CA,不過前提是,你要有太服務器和域名,並且解析過域名。
2、下載申請到的CA證書到本地,在tomcat7上進行相關配置。
3、Tomcat 證書部署
3.1 獲取證書
如果申請證書時有填寫私鑰密碼,下載可獲得Tomcat文件夾,其中有密鑰庫 www.domain.com.jks;
如果沒有填寫私鑰密碼,不提供Tomcat證書文件的下載,需要用戶手動轉換格式生成。
可以通過 Nginx 文件夾內證書文件和私鑰文件生成jks格式證書
轉換工具:https://www.trustasia.com/tools/cert-converter.htm
使用工具時注意填寫 密鑰庫密碼 ,安裝證書時配置文件中需要填寫。
3.2 證書安裝
配置SSL連接器,將www.domain.com.jks
文件存放到conf目錄下,然后配置同目錄下的server.xml
文件:
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" keystoreFile="conf\www.domain.com.jks" keystorePass="changeit" clientAuth="false" sslProtocol="TLS" />
注:
配置文件參數 | 說明 |
---|---|
clientAuth | 如果設為true,表示Tomcat要求所有的SSL客戶出示安全證書,對SSL客戶進行身份驗證 |
keystoreFile | 指定keystore文件的存放位置,可以指定絕對路徑,也可以指定相對於<catalina_home> (Tomcat安裝目錄)環境變量的相對路徑。如果此項沒有設定,默認情況下,Tomcat將從當前操作系統用戶的用戶目錄下讀取名為 “.keystore”的文件。 |
keystorePass | 密鑰庫密碼,指定keystore的密碼。(如果申請證書時有填寫私鑰密碼,密鑰庫密碼即私鑰密碼) |
sslProtocol | 指定套接字(Socket)使用的加密/解密協議,默認值為TLS |
3.3 http自動跳轉https的安全配置
到conf目錄下的web.xml。在</welcome-file-list>
后面,</web-app>
,也就是倒數第二段里,加上這樣一段
<security-constraint><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>
這步目的是讓非ssl的connector跳轉到ssl的connector去。所以還需要前往server.xml進行配置:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" />
redirectPort改成ssl的connector的端口443,重啟后便會生效。
4、由於tomcat對ssl的實現由兩種方式,tomcat7默認實現是APR方式,所以這里我們要對server.xml再進行相關修改。
5、結果展示