Nginx支持国密(使用Angie和Tongsuo)

摘要

  • 使用angie(nginx的衍生版)
  • 使用Tongsuo
  • 使用GMCert证书
  • 奇安信浏览器验证
    选择的详细的原因在后文详述。

编译

# 注:这里只写了必备的模块。其余模块请视需求自行增加。
# 重点是 ntls 相关,支持国密

./configure --with-openssl=../Tongsuo-8.3.0 \
            --with-openssl-opt=enable-ntls  \
            --with-ntls \
            --with-http_ssl_module 

make

# 最终编译成果为objs/angie,拷贝出去就行,没必要make install

配置

    server {
        listen             443 ssl;
        server_name        0.0.0.0;
        
        # Tongsuo的话,必须使用ssl_ntls。网上某些文章说的enable_ntls是不对的。(也可能是旧版的配置)
        ssl_ntls                   on;
        
      	ssl_protocols              TLSv1.1 TLSv1.2 TLSv1.3;        
        # 必须有这几个
        ssl_ciphers                "ECC-SM2-SM4-CBC-SM3:ECDHE-SM2-WITH-SM4-SM3";
 	
      	ssl_prefer_server_ciphers  on;
       
        ssl_certificate      aaa-sign.cert.pem  aaa-crypto.cert.pem;
        ssl_certificate_key  aaa-sign.key.pem   aaa-crypto.key.pem;
        
        ......
    }

【说明】

  • 需要两个证书:签名证书、加密证书。签名加密二合一的至少我试了没成功。
  • 如有必要,可以和RSA的并用(即同时支持普通浏览器和国密浏览器)

证书

来自GMCert.org。免费的。随便填个名字就可以下载临时版本(365天)

路上的坑

奇安信浏览器

奇安信浏览器必须打开“启用国密SSL通信”这个开关,否则不会使用GM。默认情况下这个开关是关闭的,并且只有专业版本才有。测试情况下,下一个最新版试用即可。
开关在选项→高级设置→国密SSL通信这个地方

image

密信浏览器

说是支持,实则不支持GM(或者是我没找到开关)。浪费了挺多时间。

相关连接

Angie https://en.angie.software(文档有中文选项)
Tongsuo https://www.tongsuo.net
GMCert https://gmcert.org/

https://www.ihuandu.com/help/zsk/836.html
https://www.tongsuo.net/docs/features/angie

附录

Angie

Nginx为了支持国密,必须修改代码,后续要自行维护这个修改也是相当的代价。而Angie作为一个Nginx的分支,默认已经集成了国密的功能,可以直接拿来用。

配置方面也完全兼容,不需要额外的修改。

关于:Angie是一个nginx的衍生版本(或者分叉版本)。Nginx被卖给美国公司F5以后,原Nginx的一批人建立了这个分支,继续开发和维护开源版本。

我们是一家俄罗斯IT公司,从事软件开发工作。 我们公司由前NGINX员工创立,开发了Angie—— 一个高性能且可扩展的Web服务器,它是nginx的一个分支, 旨在超越原版的功能,成为集群软件解决方案市场中备受青睐的 Web服务器。

Tongsuo

铜锁/Tongsuo 是一个提供现代密码学算法和安全通信协议的开源基础密码库,为存储、网络、密钥管理、隐私计算等诸多业务场景提供底层的密码学基础能力,实现数据在传输、使用、存储等过程中的私密性、完整性和可认证性,为数据生命周期中的隐私和安全提供保护能力。

PS: 其实最初首选是gmssl,但gmssl要钱,所以除非客户指定并且愿意出钱那就没必要。

GMSSL软件/工具/服务对于学习、研究、测试和教育用途永久免费。

GMSSL软件/工具/服务不得用于任何商业用途。如需以下商业版本或者OEM合作,请“联系GMSSL”。

posted @ 2026-07-01 15:44  banruoake  阅读(346)  评论(0)    收藏  举报