Tomcat9配置https链接

Tomcat版本:apache-tomcat-9.0.27
jdk版本:1.8.0_212
浏览器:火狐

1. 生成证书

https协议需要证书,开发时我们可以使用jdk自带的keytool工具生成一个证书来进行测试;

Tomcat9配置https链接

首先确保本地有jdk的环境,可以使用java -version来查看,然后运行以下代码,姓氏名称什么的随便填写即可.

keytool -genkeypair -alias testKey -keyalg RSA -storepass 123456 -keyalg RSA -keysize 2048 -validity 3650 -keystore ./testKey.jks
<!--
-alias testKey:证书项的名字,必填项
-keyalg RSA:证书签名算法,tomcat建议RSA
-storepass 123456:密钥库密码,也就是等下要生成的test.keystore的访问密码,妥善保管
-validity 3650:证书有效期,3650天,即10年
-keystore ./testKey.jks:要生成的文件的位置,./test.keystore表示存储在当前目录下
-->

Tomcat9配置https链接

然后我们可以看到有提示信息,运行提示信息里面的代码

Tomcat9配置https链接

keytool -importkeystore -srckeystore ./testKey.jks -destkeystore ./testKey.jks -deststoretype pkcs12

Tomcat9配置https链接

可以看到已经成功生成证书"testKey.jks"

Tomcat9配置https链接

2. 配置https连接器

2.1 将生成的testKey.jks密钥库文件拷贝到Tomcat服务器的conf目录下

2.2 修改server.xml文件,配置https连接器

<!-- 注释掉http连接器 -->
<!--
<Connector port="8080" protocol="HTTP/1.1"
                     connectionTimeout="20000"
                     redirectPort="8443" />
-->
<!-- 释放https连接器 -->
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
                     maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
                <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
                                         type="RSA" />
        </SSLHostConfig>
</Connector>

修改https连接器的端口号、秘钥库文件路径,及配置秘钥的口令(就是生成秘钥文件时设置的口令)

<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
                     maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
                <Certificate certificateKeystoreFile="conf/testKey.jks"
                     type="RSA" certificateKeystorePassword="123456" />
        </SSLHostConfig>
</Connector>

Tomcat9配置https链接

3. 测试

使用http访问,我们看到是无法访问成功的,返回了报错信息

Tomcat9配置https链接

使用https访问,因我们是自己生成的证书,因此浏览器给了提示信息,

Tomcat9配置https链接

我们无视即可,点击高级-->接受风险继续

Tomcat9配置https链接

可以看到我们通过https成功访问了页面

Tomcat9配置https链接

猜你喜欢

转载自blog.51cto.com/1197822/2479660