Tengine + Tongsuo 国密使用教程
版本
如果你使用的是 nginx,请参考文档:https://www.yuque.com/tsdoc/ts/xy1vvzogtycvh4ob
Tengine
- pr:https://github.com/alibaba/tengine/pull/1595
- 发布版本:https://github.com/alibaba/tengine/releases/tag/2.3.4
- 编译参数参考:
./configure --add-module=modules/ngx_openssl_ntls \
--with-openssl=../Tongsuo \
--with-openssl-opt='--api=1.1.1 enable-ntls' \
--with-http_ssl_module \
--with-stream \
--with-stream_ssl_module \
--with-stream_sni \
Tongsuo
- 版本:8.3.1 及以上版本或者 master 分支
- 注意:如果不是使用 master 分支,请将 Tengine 编译参数中的
--api=1.1.1
去掉
配置
server {
listen 443 ssl;
#开启国密功能
enable_ntls on;
#国际 RSA 证书
ssl_certificate certs/test_rsa.crt;
ssl_certificate_key certs/test_rsa.key;
#国际 ECC 证书(可选)
ssl_certificate certs/test_ecc.crt;
ssl_certificate_key certs/test_ecc.key;
#国密签名证书
ssl_sign_certificate certs/SS.cert.pem;
ssl_sign_certificate_key certs/SS.key.pem;
#国密加密证书
ssl_enc_certificate certs/SE.cert.pem;
ssl_enc_certificate_key certs/SE.key.pem;
#国密套件
ssl_ciphers "ECC-SM2-SM4-CBC-SM3:ECC-SM2-SM4-GCM-SM3:ECDHE-SM2-SM4-CBC-SM3:ECDHE-SM2-SM4-GCM-SM3:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA:ECDHE-RSA-AES128-SHA256:!aNULL:!eNULL:!RC4:!EXPORT:!DES:!3DES:!MD5:!DSS:!PKS";
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
default_type text/plain;
add_header "Content-Type" "text/html;charset=utf-8";
location / {
return 200 "tengine ntls test OK, ssl_protocol is $ssl_protocol (NTLSv1.1 表示国密,其他表示国际)";
}
}
测试
Tongsuo 编译
./config --strict-warnings --api=1.1.1 --prefix=/opt/tongsuo enable-ntls
make -j
sudo make install