本指南详细介绍了在 Linux 环境下为 Nginx 服务器配置国密 SM2 证书的流程,涵盖依赖软件准备、SM2 模块下载及关联编译步骤。通过使用 wotrus_ssl 模块,实现了 Nginx 的国密合规改造。如需详细了解该国密SM2证书Nginx安装指南,请参考 TopSSL 的教程内容。
国密SM2证书Nginx安装指南(Linux环境配置教程)
随着国产密码算法与国密 HTTPS 的普及,越来越多政务、国企、金融及国产化项目开始部署国密 SM2 SSL 证书。
但很多用户在配置国密 HTTPS 时,经常会遇到:
- Nginx 不支持 SM2
- OpenSSL 编译失败
- HTTPS 无法访问
- 国密证书不生效
- 浏览器兼容问题
实际上,国密 SSL 与普通 RSA SSL 最大的区别在于:
Nginx 默认并不直接支持 SM2,需要额外安装国密 OpenSSL 模块后重新编译。
本文将详细介绍 Linux 环境下 Nginx 安装配置国密 SM2 SSL 证书的方法。
一、安装前环境准备
部署国密 HTTPS 前,请先确认服务器环境满足以下条件。
1、Linux 操作系统
目前国密模块通常仅支持:
X86_64
架构。
推荐系统:
- CentOS 7+
- Rocky Linux
- Alibaba Cloud Linux
- Ubuntu 20+
- 麒麟 / 统信 UOS(需自行验证兼容)
2、Nginx版本要求
建议使用:
Nginx 1.14.2+
推荐使用较新的稳定版本。
Nginx官方下载地址:
http://nginx.org/en/download.html
3、准备国密 OpenSSL 模块
由于默认 OpenSSL 不支持国密 SM2,因此需要使用支持国密算法的 OpenSSL 模块。
常见国密模块:
- 沃通国密模块
- Tongsuo(腾讯)
- GmSSL
- OpenSSL 国密分支
本文以沃通国密模块为例。
根据系统版本选择对应模块:
CentOS 6及以下
https://www.wotrus.com/download/wotrus_ssl_v1.tar.gz
CentOS 7及以上
https://www.wotrus.com/download/wotrus_ssl.tar.gz
4、准备国密SM2证书
通常需要:
- SM2证书文件
- SM2私钥文件
- 国密证书链
部分场景还会同时部署:
- RSA证书
- SM2证书
实现双证书兼容。
二、安装依赖环境
安装 Nginx 前,需要先安装编译依赖:
yum install gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel -y
如果是 Ubuntu 系统:
apt install build-essential libpcre3 libpcre3-dev zlib1g-dev openssl libssl-dev
三、上传并解压安装包
将以下文件上传至服务器:
- nginx安装包
- 国密模块压缩包
例如上传至:
/usr/local/
然后解压:
tar -zxvf nginx-1.15.12.tar.gz
tar -zxvf wotrus_ssl.tar.gz
解压完成后:
/usr/local/nginx-1.15.12
/usr/local/wotrus_ssl
四、编译安装支持国密的Nginx
进入 Nginx 源码目录:
cd /usr/local/nginx-1.15.12
执行 configure:
./configure \
--prefix=/usr/local/nginx \
--with-http_stub_status_module \
--with-stream \
--with-http_ssl_module \
--with-stream_ssl_module \
--with-openssl=/usr/local/wotrus_ssl
说明:
| 参数 | 作用 |
|---|---|
| --with-http_ssl_module | 开启HTTPS模块 |
| --with-stream_ssl_module | 开启TCP SSL支持 |
| --with-openssl | 指定国密OpenSSL模块 |
这里仅配置了常用模块,其他模块可根据实际业务自行增加。
五、编译并安装Nginx
执行:
make && make install
如果过程中没有报错,则说明:
- 国密 OpenSSL 编译成功
- Nginx 已支持 SM2
安装完成后:
/usr/local/nginx/
即为安装目录。
六、配置国密SM2证书
编辑 Nginx 配置文件:
/usr/local/nginx/conf/nginx.conf
或者虚拟主机配置:
/usr/local/nginx/conf/vhost/example.conf
添加 HTTPS 配置:
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /usr/local/nginx/conf/ssl/sm2.pem;
ssl_certificate_key /usr/local/nginx/conf/ssl/sm2.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
root html;
index index.html index.htm;
}
}
注意:
- 证书路径必须正确
- SM2证书与KEY必须匹配
- 部分浏览器可能不支持纯国密HTTPS
七、检测并启动Nginx
检查配置:
/usr/local/nginx/sbin/nginx -t
如果显示:
syntax is ok
test is successful
则说明配置正常。
启动 Nginx:
/usr/local/nginx/sbin/nginx
重载配置:
/usr/local/nginx/sbin/nginx -s reload
八、国密SM2部署常见问题
1、Nginx默认不支持SM2
这是最常见问题。
普通 OpenSSL 无法直接支持国密 HTTPS,必须重新编译。
2、浏览器无法访问国密HTTPS
目前:
- Chrome
- Edge
- Firefox
默认并不完全支持纯国密 HTTPS。
很多场景需要:
- RSA + SM2 双证书
- 国密浏览器
- 国产化终端环境
3、证书链不完整
会导致:
- HTTPS访问异常
- 部分终端不兼容
- SSL检测失败
建议使用完整证书链。
4、OpenSSL版本冲突
部分服务器已安装系统 OpenSSL。
重新编译国密模块时,容易出现:
- 动态库冲突
- 启动失败
- SSL模块异常
建议独立编译国密环境。
九、国密SM2证书适用于哪些场景?
目前国密 HTTPS 主要用于:
- 政务平台
- 国企系统
- 国产化项目
- 金融行业
- 等保合规
- 信创环境
尤其:
涉及国产密码算法合规要求的场景,通常需要部署 SM2 国密 SSL 证书。
十、总结
国密 SM2 SSL 与普通 HTTPS 最大区别在于Nginx 默认并不直接支持国密算法,需要额外编译支持国密 OpenSSL 模块。
部署过程中最容易出现的问题通常包括:
- OpenSSL 不兼容
- Nginx 编译失败
- 浏览器兼容问题
- 证书链错误
- HTTPS 无法正常访问
建议部署前提前确认:
- 操作系统版本
- Nginx版本
- 浏览器兼容性
- 是否需要 RSA + SM2 双证书方案
以确保国密 HTTPS 能够稳定运行。
查看沃通的官方文档说明截图:




国密ssl证书注意事项:
- 国密ssl证书下发后即无法退款,在选择前请调查研究清楚。
- 国密证书在微信小程序中是无法使用的,国密证书要用国密中间件,如果使用可能需要再买一张RSA证书做双证书。
- 以上安装方法仅供参考,申请国密SSL证书需谨慎,安装还是比较麻烦的,而且兼容性也差一些。
- 国密证书对浏览器是有限制的,支持360安全浏览器(专业版)、红莲花浏览器、奇安信可信浏览器、零信浏览器、密信浏览器、赢达信安全浏览器等
- 本教程首先适用沃通国密SSL,其他品牌可测试或参考【国密SSL证书安装手册】帮您了解如何生成和配置国密证书的方法。



京公网安备11010502031690号
网站经营企业工商营业执照
















