Tomcat9配置https链接

谁都会走 提交于 2020-03-23 14:51:56

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链接

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!