tomcat 添加 ssl 证书



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. 参考资料

本文档基于Linux tomcat7.0.70版本编写整理。

原文地址:https://www.cnblogs.com/doraman/p/11419858.html