在tomcat中存在两种证书验证情况 (1)单向验证 (2)双向验证
1.tomcat单向认证
服务器端会提供一个公开的公钥,每一个访问此服务器的客户端都可以获得这个公钥,此公钥被加密后,服务器端可以进行解密处理,之后验证是否配对
配置
在此次配置中用的是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" />
<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服务器中的证书下载入本地,并且导入到浏览器
把根证书导入浏览器
在C:WindowsSystem32driversetc加入映射路径
此时访问https://cas.com即可,说明证书被成功验证
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"/>
注意:本格式只是采取易看原则, 为了避免出错,复制后需要删除TAB换行
clientAuth=“true” 必须为true,相当于启动客户端验证
2.访问cas.com
发现未导入客户端证书无法访问
3.在客户端浏览器添加证书
从LIUNX下载出已经申请好的客户端证书
导入客户端浏览器中
点击确认
4.访问成功
原文链接:https://blog.csdn.net/qq_42549122/article/details/90272299