1. 將證書提供方給的證書(server.crt)及密鑰文件(server.key)上傳到服務器 tomcat 的 conf 目錄
2. 在tomcat conf 目錄下執行如下命令
(1) 生成P12證書(需要設置密碼)
# openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12 -name server
OpenSSL是一個安全套接字層密碼庫,其包括常用的密碼算法、常用的密鑰生成和證書封裝管理功能及SSL協議,並提供了豐富的應用程序以供測試。
(2) 通過P12證書,生成jks 文件(包含密鑰和證書信息,也許輸入p12證書密碼,以及設置jks的密碼)
# keytool -importkeystore -srckeystore server.p12 -srcstoretype PKCS12 -destkeystore server.jks
Keytool是一個Java數據證書的管理工具 ,Keytool將密鑰(key)和證書(certificates)存在一個稱為keystore的文件中。
在keystore里,包含兩種數據:
① 密鑰實體(Key entity)——密鑰(secret key)又或者是私鑰和配對公鑰(采用非對稱加密)
② 可信任的證書實體(trusted certificate entries)——只包含公鑰
3. tomcat7 配置SSL 證書
(1) 修改conf/server.xml 配置文件
其中 KeystorePass 為生成jks文件時,設置的密碼
(2) 配置強制跳轉(http -> https):修改配置文件 conf/web.xml
在:</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>
4. 重啟tomcat服務,完成
5. 參考資料
-
OpenSSL命令介紹
https://blog.csdn.net/as3luyuan123/article/details/16105475
https://www.jianshu.com/p/e311a6537467 -
Keytool 命令介紹
https://blog.csdn.net/zlh313_01/article/details/82424664
本文檔基於Linux tomcat7.0.70版本編寫整理。