背景
Tomcat自身支持标准的SSL协议,但并不支持国密SSL协议。
本文描述了Tomcat配置的国密SSL协议(单向)的完整过程,仅供学习和参考之用。
特点:Tomcat 无需改动源码、无需重新编译、支持任意版本。
环境
服务器OS是CentOS7.7的64位版本,IP位192.168.0.97,客户端OS是WindowsXP。
JRE是jre-8u212-linux-x64.rpm。
Tomcat是apache-tomcat-9.0.37.tar.gz。
浏览器是360安全浏览器(支持国密)。
国密双证书
1) 生成国密双证书
访问https://www.gmssl.cn
可生成免费的测试国密双证书。
提交后保存sm2.demo1.gmssl.cn.zip
传到服务器/root/下解压
unzip sm2.demo1.gmssl.cn.zip -d /root/sm2.demo1/
其中/root/sm2.demo1/sm2.demo1.gmssl.cn.both.pfx是PFX格式的国密双证书/私钥文件,默认口令是12345678。
Tomcat部署国密SSL
1) 安装JRE
rpm -i jre-8u212-linux-x64.rpm
2) 部署Tomcat
/root/下解压Tomcat
tar zxfm apache-tomcat-9.0.37.tar.gz
3) 部署Java版本国密SSL组件
下载国密SSL组件
其中gmjce.jar和gmjsse.jar放到/usr/java/jre1.8.0_212-amd64/lib/ext/下
gmssl4t.jar/root/apache-tomcat-9.0.37/lib/
4)配置Tomcat
vi /root/apache-tomcat-9.0.37/conf/server.xml
Service下加入
<Connector port="443"
protocol="HTTP/1.1"
SSLEnabled="true"
sslImplementationName="cn.gmssl.tomcat.GMSSLImplementation"
sslProtocol="GMSSLv1.1"
keystoreFile="/root/sm2.demo1/sm2.demo1.gmssl.cn.both.pfx"
keystoreType="PKCS12"
keystorePass="12345678">
</Connector>
5)启动Tomcat
/root/apache-tomcat-9.0.37/bin/startup.sh
访问验证
1)下载360安全浏览器
https://se.360.cn
2)开启国密SSL支持
3)启用极速模式
访问https://192.168.0.97,出现错误页面,开启极速模式
4)访问国密SSL成功
小结
通过使用国密SSL组件,使得Tomcat自身不做任何编译修改,即可比较简单的支持国密SSL协议,
满足等保等政策合规,确实是一个简单可操作的方法。www.gmssl.cn
提供了全部免费的测试组件,
并且支持双向国密SSL,支持国密SSL/标准 SSL自适应,也支持Nginx和Apache,值得推荐和试用。