使用jdk自带keytool生成ssl证书,并使用tomcat搭建https

本文介绍了如何使用Java的keytool工具生成SSL证书,并详细讲解了如何在Tomcat服务器上配置SSL,以实现HTTPS访问。通过设置keystore文件、密码和协议,确保了本地测试环境下的HTTPS连接。尽管默认配置可能提示浏览器不安全,但通过调整ciphers参数,可以兼容Chrome和IE浏览器。

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

大多数情况下,网站访问目标客户并不固定,所以在这里只写了单向的ssl(仅在服务器端安装证书):

1. 首先在CMD中使用cd指令切换到jdk的keytool所在目录:“%JAVAHOME%/bin”

然后运行keytool:

keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:/tomcat.keystore -validity 3650

genkey生成方式,对称或者非对称

-alias:别名

-keyalg:加密方式,默认是DSA

-keystore:产生的SSL证书库存放位置和文件名

-validity :证书有效期,单位是天。

接下来会提示要求输入keystore的密码以及证书信息。需要注意的是:“您的名字和姓氏是什么?”这个问题后面需要输入的是域名,而不能试IP地址,如果在本地测试用,可以输入localhost。

建议tomcat的密钥口令设置一直,直接按回车。


如果要查看这个keystore:

keytool -list -v-keystoretomcat

-keystore tomcat中“tomcat”是之前设置的别名

2. 设置tomcat

进入tomcat的安装目录,找到conf文件夹,打开server.xml

找到被注释的:

<!--
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" />
    -->

去除注释,在这里端口继续使用8443

需要注意的是protocol="org.apache.coyote.http11.Http11Protocol"的写法是版本7中的写法,如果是6的话使用protocol="HTTP/1.1"

具体设置如下:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" 
keystoreFile="E:\tomcat.keystore" keystorePass="tomcat" 
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"
/>

clientAuth:指定是否需要验证客户端证书,如果该设置为“false”,则为单向SSL验证,SSL配置可到此结束。如果clientAuth设置为“true”,表示强制双向SSL验证 ,必须验证客户端证书。如果clientAuth设置为“want”,则表示可以验证客户端证书,但如果客户端没有有效证书,也不强制验证。 

keystoreFile:之前存放ssl证书的目录

keystorePass:生成SSL后设置的密码

此外需要注意的是ciphers,之前设置了ciphers="tomcat",将密码放进去,结果是;浏览器提示不支持的协议,之后改为上文中的值后,chrome和IE均可访问,仅提示不安全。


3.访问时,本地输入https://localhost:8443即可




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值