Tomcat配置https,JAVA生成ssl证书,http和https双向配置

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使用到)

猜你喜欢

转载自blog.csdn.net/Fadess/article/details/131697778