Tomcat下图解且详细部署SSL(https)加密证书的方式方法
[重要通告]如您遇疑难杂症,本站支持知识付费业务,扫右边二维码加博主微信,可节省您宝贵时间哦!
随着ssl证书越来越普遍的现在,大家都在使用ssl在部署网站,现在即使不使用ssl也还可以,但是有些浏览器已经开始拦截,还是建议使用ssl证书,这样也显得网站正规,今天有个客户用的是Tomcat,想要部署一下ssl证书,现在也记录下;
第一步,申请证书;
这个申请证书没啥可说的,直接去阿里云,腾讯云,华为云,百度云等各种云去免费申请即可,申请下来都是带各种运行环境的;以阿里云为例,直接下载直接对应的即可;(推荐使用腾讯云证书,腾讯云下载后就是Tomcat部署的JKS格式,阿里云就需要转换一下)
转换证书格式
1、使用java jdk将PFX格式证书转换为JKS格式证书 在命令行界面输入以下代码:
切换到证书解压文件 的路径:pushd d:\30XXXX5_www.laoliang.net_tomcat(这是我的文件路径)
2.使用命令:domains.jks是生成的jks格式证书名称,回车,会提示你输入三次密码,建议三次都是输入密码文本的密码,成功后会再文件夹下生成domains.jks文件
keytool -importkeystore -srckeystore 你的证书名称.pfx -destkeystore domains.jks -srcstoretype PKCS12 -deststoretype JKS
第二步、配置server.xml 需要修改三个地方
先把domains.jks证书上传到服务上的Tomcat的conf文件夹下即可;
切换到conf目录下编辑server.xml (Linux命令)
cd /usr/tomcat/apache-tomcat-8.5.11/conf 注意改成自己对应文件路径 vim server.xml
第一处修改:
找到:
修改成以下代码:(PS:443为https默认访问端口)
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="conf/domains.jks"
keystorePass="80ISkH7c" //证书密钥 ,密码文本那个
clientAuth="false" sslProtocol="TLS" />
PS:首先去掉注释,然后certificateKeystoreFile属性是让你告诉服务器需要哪个SSL证书(部署多个证书,请自行取名称),后面就填复制过去的那个jks文件的名字(记得带上jks后缀),然后加上certificateKeystorePassword这个属性,后面的属性值填秘钥,如果你设置密钥,就填写你刚才生成时候的,如若没有,就直接填 pfx-password.txt 秘钥即可
以下两个修改是为了让http访问自动跳转为https访问;
第二处修改:找到
改成
第三处修改:找到
改成
保存,退出。
第三步、配置web.xml
编辑web.xml
vim web.xml
在该文件</welcome-file-list>标签(一般在文件最末尾)后面加上这样一段:
<login-config>
<!-- Authorization setting for SSL -->
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<security-constraint>
<!-- Authorization setting for SSL -->
<web-resource-collection >
<web-resource-name >SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
保存,退出,重启tomcat即可,这样操作即可搞定;
PS:延伸阅读
1、若最后启动tomcat时候报:Catalina.start using conf/server.xml: Element type "Connector" must be followed by either attribute ,请注意不要分行,每个属性间隔一个空格保存就好即可;
2、尝试使用https://+域名来访问,如果显示找不到页面,那么就应该是你云服务器443端口被防火墙拦截了,此时就需要打开443端口;去服务器直接开启即可,这里不再做阐述,不会的话,请参阅站内文章开启ftp文章 阿里云服务器(ECS)操作系统建立IIS FTP连接时出现:读取目录列表失败的解决办法
问题未解决?付费解决问题加Q或微信 2589053300 (即Q号又微信号)右上方扫一扫可加博主微信
所写所说,是心之所感,思之所悟,行之所得;文当无敷衍,落笔求简洁。 以所舍,求所获;有所依,方所成!