tomcat开发环境配置启用https


一、制作证书

众所周知,https协议需要证书,为了开发去CA买证书是浪费,使用jdk自带的keytool工具做一个开发测试用足够。
https://docs.oracle.com/javase/8/docs/technotes/tools/windows/keytool.html#CHDBGFHE
上面是jdk8的keytool的官方文档连接。可用命令不算少,常用的也就几个。

1、新生成一个密钥库

keytool -genkeypair -alias bendiceshi -keyalg RSA -validity 36500 -storepass 123456 -keystore ./test.keystore -v
  • -alias bendiceshi:证书项的名字,必填项
  • -keyalg RSA:证书签名算法,tomcat建议RSA
  • -validity 36500:证书有效期,36500天,即100年
  • -storepass 123456:密钥库密码,也就是等下要生成的test.keystore的访问密码,妥善保管
  • -keystore ./test.keystore:要生成的文件的位置,./test.keystore表示存储在当前目录下
  • -v:该选项会显示比较详细的信息
    无图片描述
    如上图所示第一项必须写你测试用的网址,这里我写的是localhost。至于图中提示的密钥口令,没什么用,就是将来访问那条密钥时要输入的口令,直接回车就行。

2、向已存在密钥库添加新密钥

keytool -genkeypair -alias bendiceshi_ip -keyalg RSA -validity 36500 -keystore ./test.keystore -v
  • -alias bendiceshi_ip:新密钥的名字
  • -keystore ./test.keystore:刚才生成的密钥库文件的位置
  • 其余项同1
    无图片描述
    这样我们就向已存在的密钥库添加了一个新密钥,在这两次操作里我分别写了localhost和127.0.0.1,等下会分别访问这两个网址。

3、查看密钥库中的项

keytool -list -keystore ./test.keystore
keytool -list -keystore ./test.keystore -v

添加-v会显示详细信息,这里为了篇幅考虑不加-v。
无图片描述

4、导出证书

keytool -exportcert -alias bendiceshi -file ./bendiceshi.cer -storepass 123456 -keystore ./test.keystore -v
keytool -exportcert -alias bendiceshi_ip -file ./bendiceshi_ip.cer -storepass 123456 -keystore ./test.keystore -v
  • -alias bendiceshi:要导出的证书的名字,即刚才创建的密钥的名字,即keytool -list时显示的名字
  • -file ./bendiceshi.cer:要导出的证书的存储位置,这里我放在当前目录下
  • -keystore ./test.keystore:刚才创建的密钥库的位置
    无图片描述
    上述所有步骤所生成的3个文件如下
    无图片描述

5、copy密钥库文件
将刚才生成的密钥库文件copy到你tomcat的conf目录,跟server.xml同级。注意:这里一定要放在你实际运行的tomcat的conf目录下。
无图片描述

6、修改tomcat配置文件

    <Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="443"/>
    <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" keystoreFile="/conf/test.keystore"
               keystorePass="123456"/>

要修改的配置文件是tomcat的server.xml文件。仔细看上面的配置,第一个Connector是默认就有的,这里只是把8080端口改成了公认的80端口,把8443端口改成了公认的443端口。第二个Connector默认是注释掉的,搜索8443就能找到,直接把上述第二个Connector粘贴到server.xml中第一个Connector的下面,方便管理。keystoreFile=”/conf/test.keystore”就是刚才copy的文件的位置,可以自己改到其他位置。keystorePass=”123456”就是刚才创建密钥库时使用的口令。

7、启动tomcat,做收尾工作
启动tomcat,然后访问你配置的网址,我这里是如上配置,localhost和127.0.0.1。会看到如下现象
无图片描述
无图片描述
这是因为刚才制作的证书不是买的,所以浏览器无法认证,此时只需要将刚才导出的两个证书,也就是bendiceshi.cer和bendiceshi_ip.cer导入windows系统就行,双击证书,如下
无图片描述
无图片描述
无图片描述
无图片描述
无图片描述
无图片描述
无图片描述
无图片描述
无图片描述
这个时候再次用那两个网址浏览网页,会发现
无图片描述
无图片描述
会发现一个成功,而一个失败了,这可能是因为在一个密钥库里放多个密钥tomcat无法识别导致的,因为平常工作开发中一个网址用来测试足够了,所以这不是个问题。


原创不易-转帖请注明出处–shizhongqi

猜你喜欢

转载自blog.csdn.net/lianjunzongsiling/article/details/78635437