Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >国密SSL协议之Nginx集成

国密SSL协议之Nginx集成

原创
作者头像
gmssl
修改于 2020-08-20 03:28:18
修改于 2020-08-20 03:28:18
2.6K0
举报
文章被收录于专栏:国密SSL集成国密SSL集成

国密SSL协议之Nginx集成

1 背景

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

特点:Nginx 无需改动源码、支持任意版本。

2 环境

服务器OS是CentOS7.7的64位版本,IP位192.168.0.98,客户端OS是WindowsXP。

Nginx是Nginx-1.18.0。

浏览器是360安全浏览器(支持国密)。

3 安装方法一:源码编译

GMSSL.cn提供一个OpenSSL的国密版库,可与nginx编译,生成的nginx即支持国密SSL协议。

1)准备gmssl_openssl

下载页面https://www.gmssl.cn/gmssl/index.jsp?go=nginxdown

下载其中的gmssl_openssl_1.1_b1.tar.gz

下载页面https://www.gmssl.cn/gmssl/index.jsp?go=nginxdown

拷贝到/root/目录

解压

tar xzfm gmssl_openssl_1.1_bxx.tar.gz -C /usr/local

**则/usr/local/gmssl为国密版openssl目录

2)准备nginx

下载页面http://nginx.org/download/nginx-1.18.0.tar.gz

拷贝到/root/目录

解压

tar xzfm nginx-1.18.0.tar.gz

**则/root/nginx-1.18.0为nginx目录

cd /root/nginx-1.18.0

vi auto/lib/openssl/conf,将全部$OPENSSL/.openssl/修改为$OPENSSL/并保存

3)编译

./configure \

--without-http_gzip_module \

--with-http_ssl_module \

--with-http_stub_status_module \

--with-http_v2_module \

--with-file-aio \

--with-openssl="/usr/local/gmssl" \

--with-cc-opt="-I/usr/local/gmssl/include" \

--with-ld-opt="-lm"

make install

**则/usr/local/nginx为生成的国密版nginx目录

注:可能需要安装需要的pcre-devel包。

4 安装方法二:直接安装

GMSSL.cn已经提供了一个按方法一编译好的国密版nginx,可以直接下载安装使用。

下载页面https://www.gmssl.cn/gmssl/index.jsp?go=nginxdown

下载其中的gmssl_nginx_1.8.0_b7.tar.gz

拷贝到/root/目录

解压

tar xzfm gmssl_nginx_1.8.0_bxxx.tar.gz -C /usr/local

**则/usr/local/nginx为国密版nginx目录

5 国密双证书

1)生成国密双证书

访问https://www.gmssl.cn/gmssl/index.jsp?go=ca,可生成免费的测试国密双证书。

提交后保存sm2.demo1.gmssl.cn.zip

传到服务器/root/下解压

unzip sm2.demo1.gmssl.cn.zip -d /root/sm2.demo1/

6 Nginx部署国密SSL

1)配置Nginx

vi /usr/local/nginx/conf/nginx.conf

http下加入

serve

{

listen 0.0.0.0:443 ssl;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

ssl_ciphersECDHE-RSA-AES128-GCM-SHA256:AES128-SHA:DES-CBC3-SHA:ECC-SM4-SM3:ECDHE-SM4-SM3;

ssl_verify_client off;

ssl_certificate/root/sm2.demo1/sm2.demo1.gmssl.cn.sig.crt.pem;

ssl_certificate_key/root/sm2.demo1/sm2.demo1.gmssl.cn.sig.key.pem;

ssl_certificate/root/sm2.demo1/sm2.demo1.gmssl.cn.enc.crt.pem;

ssl_certificate_key/root/sm2.demo1/sm2.demo1.gmssl.cn.enc.key.pem;

location /

{

root html;

index index.html index.htm;

}

}

1)测试

/usr/local/nginx/sbin/nginx-t

OpenSSL(GM version) by www.gmssl.cn.Test Only!!!

OpenSSL(GM version) bywww.gmssl.cn. Test Only!!!

OpenSSL(GM version) bywww.gmssl.cn. Test Only!!!

OpenSSL(GM version) bywww.gmssl.cn. Test Only!!!

nginx: the configuration file/usr/local/nginx/conf/nginx.conf syntax is ok

nginx: configuration file/usr/local/nginx/conf/nginx.conf test is successful

注:Test Only等信息是国密版OpenSSL输出的提示信息,不影响测试和使用。

2)运行

/usr/local/nginx/sbin/nginx

7 访问验证

1)下载360安全浏览器

https://se.360.cn

2)开启国密SSL支持

3)启用极速模式

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

4)访问国密SSL成功

8 小结

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

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
国密SSL协议之Apache集成
Apache httpd自身支持标准的SSL协议,但并不支持国密SSL协议。本文描述了Apache httpd配置的国密SSL协议(单向)的完整过程,仅供学习和参考之用。
gmssl
2020/08/20
1.7K1
国密SSL协议之Apache集成
国密Nginx容器实战
下载gmssl_openssl_1.1_b4.tar.gz与nginx(参见资源与下载),然后编译。
用户8941398
2021/09/14
1.5K0
JumpServer国密支持配置
HTTPS 国密证书配置在JumpServer前端的Nginx服务器,用户通过本地的国密支持的浏览器访问到Nginx服务器,此链路为国密HTTPS加密链路,Nginx服务器进行HTTPS解密,并将访问请求转发到后端的JumpServer服务器。
范一刀
2021/12/02
2K0
JumpServer国密支持配置
国密SSL协议之C语言编程
OpenSSL支持标准的SSL协议,但并不支持国密SSL协议。本文描述了C语言使用国密版OpenSSL开发一个简单的客户端程序,连接国密Web网站,发送HTTP请求,并接收HTTP应答。
gmssl
2020/09/03
2.2K0
国密wget的用法指南
https://www.gmssl.cn/gmssl/down/gmwget.exe
用户8941398
2022/08/12
8530
国密wget的用法指南
国密SSL协议之性能测试
国密SSL性能指标主要有三个:新建速率(CPS,Connection per second)、加密吞吐(Throughput)、最大并发连接(Max Persistent Connections)
gmssl
2020/09/14
4.7K0
国密SSL协议之Tomcat集成
Tomcat自身支持标准的SSL协议,但并不支持国密SSL协议。本文描述了Tomcat配置的国密SSL协议(单向)的完整过程,仅供学习和参考之用。
gmssl
2020/08/20
3.2K0
国密SSL协议之Tomcat集成
国密SSL协议之Java编程
Java自身通过JCE和JSSE支持标准的SSL协议,但并不支持国密SSL协议。本文描述了Java使用国密JCE和国密JSSE开发一个简单的客户端程序,连接国密Web网站,发送HTTP请求,并接收HTTP应答。
gmssl
2020/08/25
3.4K0
国密SSL协议之Java编程
GmSSL支持SM2/SM3/SM4/SM9/SSL国产商用密码开源库
GmSSL是一个开源的密码工具箱,支持SM2/SM3/SM4/SM9/ZUC等国密(国家商用密码)算法、SM2国密数字证书及基于SM2证书的SSL/TLS安全通信协议,支持国密硬件密码设备,提供符合国密规范的编程接口与命令行工具,可以用于构建PKI/CA、安全通信、数据加密等符合国密标准的安全应用。
Tinywan
2024/07/05
1.2K0
GmSSL支持SM2/SM3/SM4/SM9/SSL国产商用密码开源库
国密SSL通信的调试技巧
这篇文章来聊一聊国密SSL通信的几个调试技巧。网络通信开发需要开发者具有细致和耐心,对照协议,逐个步骤分析数据,整个过程有些枯燥。特别是网络数据包,差一个字节都可能导致解析出错,只能逐个字节比对。这个时候,一些调试经验和技巧就比较重要了。
云水木石
2020/05/15
2.9K0
国密SSL通信的调试技巧
Centos7安装nginx.1.18
腾云先锋(TDP,Tencent Cloud Developer Pioneer)是腾讯云GTS官方组建并运营的技术开发者群体。这里有最专业的开发者&客户,能与产品人员亲密接触,专有的问题&需求反馈渠道,有一群志同道合的兄弟姐妹。来加入属于我们开发者的社群吧!
无敌小菜鸟
2022/04/07
8580
Centos7安装nginx.1.18
配置Nginx及安装SSL模块
Nginx是一个反向代理服务器。Nginx不仅可以部署网站,还可以用于配合WAF进行端口监听,如果某项目端口被该项目持续监听,同时防火墙设置拒绝外网访问该端口,Nginx可以将允许外网连接的自定义端口(未处于被监听状态,其它项目可监听该端口)访问请求转发至防火墙拒绝外网访问的端口,因为Nginx转发数据全程是在内网进行。
小新笔记坊
2024/03/12
1.6K0
搭建个人国密CA(Certification Authority)
在SSL/TLS/HTTPS通信中,证书虽然不是TLS/SSL协议的一部分,却是HTTPS非常关键的一环,网站引入证书才能避免中间人攻击。证书涉及了很多密码学知识,理解证书后,再深入理解TLS/SSL协议,效果会更好。
云水木石
2020/03/12
3.2K0
从零开始用nginx+云服务器部署前端项目
在项目根路径下的vue.config.js里面配置部署应用包时的基本 URL publicPath,不配置的话默认是 publickPath:"/";
andyhu
2022/12/14
3K0
从零开始用nginx+云服务器部署前端项目
【云+社区年度征文】利用nginx搭建推流服务器
博客已经许多月没有继续更新了,近期刚好有个粉丝在做直播实时流转发,需要构建推流服务器,像我提出了一些nginx构建的问题,捧着自己的粉丝请教(当时一头雾水:我只是个小安卓),但是还是专门花了一天的时间研究了下推流服务器(直播实时流服务器)RTMP流媒体服务器,现在网上现成的开源方案有很多,有SRS,Red5,wowoza,FMS等,我这里使用的是Nginx的rtmp插件实现实时流转发。
包子388321
2020/12/19
19.8K4
在macOS上通过openssl源码生成国密SM2密钥对
参考:https://segmentfault.com/a/1190000021758503
freesan44
2021/12/06
1.5K0
在macOS上通过openssl源码生成国密SM2密钥对
参考:https://segmentfault.com/a/1190000021758503
freesan44
2021/11/11
9820
搭建国密SSL开发测试环境
国密算法包含了一系列的加密算法,用途广泛,可以用于软硬件加密、签名等地方。我主要研究国密算法在SSL/TLS/HTTPS通信中的应用,这会涉及到客户端和服务器端,最典型的用例就是浏览器访问Web服务器。它要求客户端和服务器都支持国密算法,才能进行通信。如果我们在开发客户端产品,就需要有一个支持国密的服务器配合测试,反之亦然。通常情况下,我们可以使用一些现成的产品,如果开发服务器端,可以使用密信浏览器,如果开发客户端,可以使用一个在线网站:
云水木石
2020/03/11
2K0
搭建国密SSL开发测试环境
TLCP的过去、现在与未来
Internet和WWW的出现,掀起了信息化浪潮而且经久不衰。如果现实世界一样,有价值的数据和信息,引来了了各种攻击和威胁,信息安全变得越来越重要。作为互联网基石技术之一HTTP,其安全的重要性不言而喻,HTTPS正是为解决HTTP安全而提出安全协议和规范。
用户8941398
2021/08/23
3.3K0
TLCP的过去、现在与未来
Centos7安装Nginx教程,一步安装http和https
nginx是一款轻量级web服务器,主要有负载均衡和反向代理的特性。 安装准备 nginx一些模块需要依赖lib库,所以先安装lib库,执行以下命令: [root@localhost local]# yum -y install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel 下载 在官网下载安装包 安装 解压文件: tar -zxvf nginx-1.20.2.tar.gz 解压之后进入到nginx目录: cd ng
用户10384376
2023/02/26
8430
Centos7安装Nginx教程,一步安装http和https
相关推荐
国密SSL协议之Apache集成
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档