您的位置:首页 > 理论基础 > 计算机网络

tomcat开发环境配置启用https

2017-11-26 02:53 447 查看

一、制作证书

众所周知,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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  tomcat https ssl tls