最近项目上遇到一些https的问题,需要在Tomcat里面测试一下如何开启https协议访问网站,在网上查了一些资料,自己也试了很多次,终于成功搞定了,下面跟大家分享一下我的一点经验。
打开cmd,切换到jdk安装目录的bin目录下,然后执行命令:
keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:tomcat.keystore -validity 36500
其中的tomcat是秘钥库的别名,36500是秘钥库的有效时间,单位为天。
在生成秘钥库的过程中还需要你输入秘钥库的密码,以及一些相关的秘钥注册信息,其中【您的名字与姓氏】最好是输入你网站的域名。
找到tomcat目录conf中的server.xml中找到一段被注释掉的配置:
将这段配置取消注释,并添加一些配置如下:
其中,keystoreFile配置的就是我们刚才生成的秘钥库的全路径,keystorePass就是秘钥库的密码。
这样配置好以后就可以在浏览器中输入url:“https://localhost:8443/”来查看https访问的效果了。
经过上面的配置以后我们就可以使用https协议来访问我们的网站了,但是还有个小问题,就是在地址栏里面有一个锁带着红叉,意思是警告我们这个地址是不安全的,不被信任的,这样看着比较别扭,我们可以通过下面的步骤来去掉这个警告。
1、 使用keytool导出keystore文件里面的cer证书。
keytool -alias "tomcat" -exportcert -keystore D:tomcat.keystore -file D:tomcat.cer
执行上面的命令并且输入秘钥库的密码,即可导出cer证书。
2、 导出cer证书后将证书导入浏览器中,打开浏览器的设置页面,找到https/ssl证书管理,按照提示一步一步导入刚才生成的cer证书,注意在选择证书的存储位置时要选择【受信任的根证书颁发机构】。这样操作以后就可以在地址栏里去掉那个红色警告了。
1、我发现在配置server.xml文件里面的keystoreFile时,假如keystore文件是放在当前用户目录下面,那么将keystoreFile设置为${user.home}/.keystore的话,访问https失败,如果设置为它的实际路径:C:UsersAdministrator.keystore的话,则https访问成功。