1、java生成ssl证书
首先要确认环境是否安装JDK;必须安装JDK才能生成SSL证书
1.1、服务器生成证书
服务器生成证书: 使用keytool为Tomcat生成证书,假定目标机器的域名是“127.0.0.1”,keystore文件存放在“D:omcat.keystore”,口令为“123456”,validity为证书有效时间当前为90天
生成命令:keytool -genkey -v -alias tomcat -keyalg RSA -keyst D:omcat.keystore -validity 36500
设置密码:123456(或者其它密码)
您的姓名与姓氏是什么:127.0.0.1或localhost 代表本机URL路径(必须填写)
其它的按回车
直到出现CN=xxx,OU=xxx,O=xxx....是否正确
【否】:y或n y为确定信息,n为重新填写信息
出现:<如果和密钥库口令相同,按回车>:直接按回车即可
开始生成omcat.keystore证书,看D盘是否多了一个文件为omcat.keystore说明成功
1.2、客户端生成证书
生成证书命令:keytool -genkey -v -alias mykey -keyalg RSA -storetype PKCS12 -keystore D:ykekey.p12 (ykekey为自定义)
该操作与生成服务器证书一样,但是您的姓名与姓氏是什么:可以任意值,比如:sczs
一直按回车键,直到出现CN=xxx,OU=xxx,O=xxx....是否正确
【否】:y或n y为确定信息,n为重新填写信息
开始生成:D:ykekey.p12证书, 查看D盘是否多了一个文件为ykekey.p12说明成功
双击ykekey.p12进行安装证书即可,一直点击下一步,直到安装完成,导入成功
1.3、服务器信任客户端证书
1.3.1、把客户端证书导出为一个单独的CER文件
命令:keytool -export -alias mykey -keystore D:ykekey.p12 -storetype PKCS12 -storepass 000000 -rfc -file D:ykekey.cer
注意:D:ykekey.p12与D:ykekey.cer ,名字要一致ykekey
此时D盘多出一个ykekey.cer 说明成功
1.3.2、是将该文件导入到服务器的证书库,添加为一个信任证书
命令:keytool -import -v -file D:ykekey.cer -keystore D:omcat.keystore
通过命令查看服务器的证书库,可以看到两个证书,一个是服务器证书,一个是受信任的客户端证书:
是否信任此证书:y
4、客户端信任服务器证书
命令:keytool -keystore D:omcat.keystore -export -alias tomcat -file D:tomcat.cer (tomcat为你设置服务器端的证书名;生成的服务器证书密码:123456,统一设置一个密码,也就是第一步设置的密码一致即可)。
此时D盘多出一个tomcat.cer文件说明成功
双击文件进行安装证书到服务器上,直到安装成功,导入成功!
完成此步算是生成SSL证书完成,接下可以可以进行配置tomcat文件使用HTTPS访问。
2、Tomcat配置https访问
单项配置https(方法1)
修改 Tomcat 的 server.xml 文件:
<!--以下为单项https配置,提示安全风险,但可以访问系统,提供证书JAVA-->
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="D:\omcat.keystore"
keystorePass="123456" />
双向配置HTTPS(方法2)
修改 Tomcat 的 server.xml 文件:
<!--以下为双向项https配置,必须安装ssl证书才能访问系统,提供证书JAVA-->
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true" maxThreads="150" scheme="https"
secure="true" clientAuth="true" sslProtocol="TLS"
keystoreFile="D:\omcat.keystore" keystorePass="123456"
truststoreFile="D:\omcat.keystore" truststorePass="123456" />
通过https://127.0.0.1:8443测试
3、tomcat同环境下http和https双向配置
修改 Tomcat 的 server.xml 文件:(方法3)
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector SSLEnabled="true" port="8443" maxThreads="200"
scheme="https" secure="true" clientAuth="false"
sslProtocol="TLS" keystoreFile="D:\omcat.keystore" keystorePass="密码" />
HTTP 连接器的端口为 8080,HTTPS 连接器的端口为 8443
重启tomcat
通过访问 http://127.0.0.1:8080 和 https://127.0.0.1:8443 来测试。
注释:
clientAuth:设置是否双向验证,默认为false,设置为true代表双向验证
keystoreFile:服务器证书文件路径
keystorePass:服务器证书密码
truststoreFile:用来验证客户端证书的根证书,此例中就是服务器证书(双向配置HTTPS使用到)
truststorePass:根证书密码(双向配置HTTPS使用到)
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/Fadess/article/details/131697778