文章说明:tomcat配置腾讯云的SSL证书,使http访问变为https访问。
出处:CSDN@小王瑞丶https://blog.csdn.net/Axela30W/article/details/77145887
HTTP与HTTPS的区别:HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
如果使用腾讯云服务器,可自行下载免费证书,证书需绑定自己(或公司)的域名。
本文适用 jks格式的证书配置。如果是pfx格式,原文有将pfx转换为jks的方式,自行查看。
1. 下载&上传证书文件
下载好证书解压后如图所示
-进入Tomcat查看->
将Tomcat目录下的 jks格式的文件 上传到云服务器tomcat安装目录的conf目录下,(便于区分,本人新建了cert目录,放SSL证书文件),无论放在conf目录,还是conf/cert目录,都要与后面配置文件中写的目录路径一致。
2. 编辑配置文件
登录云主机,进入到 tomcat安装目录下的 conf目录中,
(编辑前建议备份配置文件,以防万一。高手大神可跳过
cp server.xml server20190306.xml
cp web.xml web20190306.xml
)
编辑配置文件 vim server.xml
进入编辑模式后,找到 包含scheme="https"属性的 <Connector > 标签。( 提示:大约在88行上下的位置)
<!--
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"/>
-->
去掉注释,使该字段生效。 在<Connector/>标签内增加keystoreFile (证书文件) 和keystorePass(证书密码)两个属性值,并将port 端口号改为443。(证书密码自行查看)
更改后如下
keystoreFile="证书路径",keystorePass="证书密码"。到这里证书配置完成。
3. 配置 - 地址栏输入域名 自动转换为 https
找到 port="8080"的<Connector/>标签。(约70行上下的位置)
更改 "8443" => "443"
更改后如下
(为了访问项目时,不需再输入8080端口号,将 port="8080" 改为 port="80")
:wq 保存退出。
配置web.xml文件。vim web.xml
注意!!! 在文件的末尾 加入下列代码(建议复制粘贴,手打字母可能出错,也难找到)
约4600+行,</welcome-file-list>标签后 ,</web-app>标签前的位置。
如图。(代码见图下)
代码如下:
<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>
保存退出。 :wq
重启tomcat服务器
# cd ../bin
# ./shutdown.sh
# ./startup.sh
访问页面 直接输入域名 xxxxx.com
结束。
摘抄自:CSDN@小王瑞丶https://blog.csdn.net/Axela30W/article/details/77145887
再次感谢原博主分享~