为了确保访问安全性,大部分Web系统往往会考虑开启HTTPS访问方式,而Tomcat作为做常用的Web应用服务器,其HTTPS该如何开启呢?
在tomcat中配置HTTPS访问方式,存在两种证书验证情况:
1、HTTPS单向认证
服务器端会提供一个公开的公钥,每一个访问此服务器的客户端都可以获得这个公钥,此公钥被加密后,服务器端可以进行解密处理,之后验证是否配对。
配置
在此次配置中用的是openssl自制证书,证书可以从专业机构进行购买,本文因为学习采用自制证书
(1)进入tomcat目录,编辑server.xml
找到端口号为433的配置段,433是访问HTTPS的端口号添加如下内容
<Connector port="443" protocol="HTTP/1.1" maxThreads="150" SSLEnabled="true" schema="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="srv/ftp/cas/server/server.p12" keystoreType="pkcs12" keystorePass="sheng123" />
(2)此时启动tomcat也进行https地址的访问
发现带有https的端口无法访问tomcat
(3)需要把CA的根证书导入浏览器
把Liunx服务器中的证书下载入本地,并且导入到浏览器
把根证书导入浏览器
2、tomcat双向认证
在安全要求较高的网上银行等网站的开发当中,采取双向验证,在单项验证的基础上,服务器端对客户端的证书验证,比如在实际生活中,银行会给一个"K宝"里面被储存的是证书,两向验证操作成功,才可以成功传递请求等信息。
(1)更改server.xml文件(443端口)
<Connector port="443" protocol="HTTP/1.1" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="true" sslProtocol="TLS" keystoreFile="/srv/ftp/cas/server/server.p12"keystoreType="pkcs12" keystorePass="sheng123" truststoreFile="/usr/local/tomcat/ca-trust.p12 truststoreType="jks"truststorePass="sheng123"/>
(2)此时启动tomcat也进行https地址的访问
发现带有https的端口无法访问tomcat,因为未导入客户端证书而无法访问
(3)在客户端浏览器添加证书
从LIUNX下载出已经申请好的客户端证书
导入客户端浏览器中
点击确认
(4)访问成功