使用JDK自带工具KeyTool生成ssl证书, 进行搭建Tomcat+Https协议

本文详细介绍了如何在Java环境中生成服务器和客户端证书,进行双向SSL认证,并配置Tomcat服务器进行SSL加密连接。步骤包括生成证书、导出与导入证书、配置服务端和客户端的信任,以及在Tomcat的service.xml和web.xml中设置SSL相关参数。通过这些操作,可以确保服务器和客户端之间的通信安全。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1丶定位到jdk下bin目录下

在这里插入图片描述

2丶生成服务器证书,输入以下命令
keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:/keys/tomcat.keystore -validity 365

输入跳出如下界面:
在这里插入图片描述
注意:
1丶口令需自己记清楚,要用到
2丶您的名字与姓氏? 对应访问域名(比如: 本地 localhost)

参数说明:
1丶 -genkey 生成对称或非对称加密
2丶 -keystore 生成文件保存地址(文件夹先创建好,否则报错)
3丶-validity 有效期, 单位(天)
4丶-keyalg 加密方式

3丶生成客户端证书, 命令如下
keytool -genkey -v -alias clientkey -keyalg RSA -storetype PKCS12 -keystore  D:/keys/clientkey.p12
4丶双向认证: 服务端信任客户端,命令如下:

由于不能直接将PKCS12格式的证书库导入,所以必须先把客户端证书导出为一个单独的CER文件

keytool -export -alias clientkey -keystore  D:/keys/clientkey.p12 -storetype PKCS12 -storepass 123456 -rfc -file  D:/keys/clientkey.cer
5丶双向认证: 客户端信任服务端(导入证书库)
keytool -import -v -file  D:/keys/clientkey.cer -keystore D:/keys/tomcat.keystore
6丶双向认证: 生成证书文件
keytool -keystore D:/keys/tomcat.keystore -export -alias tomcat -file D:/keys/tomcat.cer
7丶安装证书(双击上步生成的tomcat.cer文件)

在这里插入图片描述

8丶配置tomcat/service.xml文件
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" 
               keystoreFile="D:/keys/tomcat.keystore" keystorePass="123456"
               ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_ 
                CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_C 
                BC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RS 
                A_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA" />

参数说明:
1丶keystoreFile: 证书配置路径
2丶keystorePass: 生成口令
3丶ciphers: 浏览器 ‘公共密钥过弱’

9丶配置工程tomcat/web.xml,添加ssl认证,将http请求全部需要ssl认证:
 <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>
10丶测试即可 !

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值