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版本编写整理。