专栏首页国密SSL集成国密SSL协议之Tomcat集成
原创

国密SSL协议之Tomcat集成

1 背景

Tomcat自身支持标准的SSL协议,但并不支持国密SSL协议。本文描述了Tomcat配置的国密SSL协议(单向)的完整过程,仅供学习和参考之用。

特点:Tomcat 无需改动源码、无需重新编译、支持任意版本。

2 环境

服务器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安全浏览器(支持国密)。

3 国密双证书

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。

4 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

5 访问验证

1)下载360安全浏览器

https://se.360.cn

2)开启国密SSL支持

2)启用极速模式

访问https://192.168.0.97,出现错误页面,开启极速模式

3)访问国密SSL成功

6 小结

通过使用国密SSL组件,使得Tomcat自身不做任何编译修改,即可比较简单的支持国密SSL协议,满足等保等政策合规,确实是一个简单可操作的方法。www.gmssl.cn提供了全部免费的测试组件,并且支持双向国密SSL,支持国密SSL/标准 SSL自适应,也支持Nginx和Apache,值得推荐和试用。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 国密SSL协议之Nginx集成

    Nginx自身支持标准的SSL协议,但并不支持国密SSL协议。本文描述了Nginx配置的国密SSL协议(单向)的完整过程,仅供学习和参考之用。

    gmssl
  • 国密SSL协议之性能测试

    国密SSL性能指标主要有三个:新建速率(CPS,Connection per second)、加密吞吐(Throughput)、最大并发连接(Max Persi...

    gmssl
  • 国密SSL协议之Apache集成

    Apache httpd自身支持标准的SSL协议,但并不支持国密SSL协议。本文描述了Apache httpd配置的国密SSL协议(单向)的完整过程,仅供学习和...

    gmssl
  • 交付程序不给钱,程序员一怒之下开源客户项目代码

    国外一名自由职业的开发者在客户不给结款以后,将其开发的项目开源到了 GitHub 上,两天不到收获了超过 3000 个 star。除了此事引发的技术细节大讨论...

    纯洁的微笑
  • Node中的流

    stream是数据集合,与数组、字符串差不多。但stream不一次性访问全部数据,而是一部分一部分发送/接收(chunk式的),所以不必占用那么大块内存,尤其适...

    ayqy贾杰
  • 如何将SVG图像使用在HTML网站中

    使用PS生成SVG图像用编辑器打开发现是data:img/png;base64而非/path

    Din
  • django-orm框架表单的增删改查

    小小咸鱼YwY
  • 关于学习R的小建议(附下阶段更新内容)

    关注“生信与临床”的小伙伴们现在应该已经学习了一定的R语言基础知识,对R应该不陌生了。

    生信与临床
  • CMS学习笔记

    可中断的预清理:这个阶段的目标跟“预清理”阶段相同,也是为了减轻重新标记阶段的工作量。可中断预清理的价值:在进入重新标记阶段之前尽量等到一个Minor GC,尽...

    日薪月亿
  • 为啥计算机语言难学?

    很多人觉得计算机太难学了,里面很多专业术语都不明白,如果单纯从人类语言的角度考虑,很多计算机语言的确很难直接体现出很人性化的地方,所以要学好计算机语言,首先不是...

    程序员互动联盟

扫码关注云+社区

领取腾讯云代金券