1、安装tengine+tongsuo
https://www.tongsuo.net/docs/features/tengine
据官网介绍其国密套件是经过检测认证的。安装步骤按照官网流程走就行。
而gmssl之类的服务似乎存在试用期。
2、配置conf证书
下载签发的测试证书,也可自行签发,懒得折腾就直接下载测试:
https://www.tongsuo.net/docs/features/Tongsuo-SM2-2
vi /usr/local/tengine/conf/nginx.conf
配置文件:
server {
listen 443 ssl;
server_name 110.4.1.1; #需修改为对应的网站域名
# 启用NTLS。Tengine针对BabaSSL中的NTLS功能进行了适配,本文使用BabaSSL作为Tengine的底层密码库来实现通信加密的能力。
enable_ntls on;
# 配置国密算法签名证书
ssl_sign_certificate cert/tong/server_sign.crt; #需修改为实际证书文件路径
ssl_sign_certificate_key cert/tong/server_sign.key; #需修改为实际私钥文件路径
# 配置国密算法加密证书
ssl_enc_certificate cert/tong/server_enc.crt; #需修改为实际证书文件路径
ssl_enc_certificate_key cert/tong/server_enc.key; #需修改为实际私钥文件路径
# 配置RSA算法证书
#ssl_certificate cert/tong/test_rsa.crt; #需修改为实际证书文件路径
#ssl_certificate_key cert/tong/test_rsa.key; #需修改为实际私钥文件路径
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
#略
}
3、浏览器访问验证
仅配置/usr/local/tengine/conf/nginx.conf
国密证书,普通chrome浏览器无法访问:
下载奇安信国密浏览器:
如果没有国密SSL浏览器,打开了rsa证书验证可访问:
4、如果没有国密浏览器,命令行验证国密ssl:
wget https://curl.gmssl.cn/down/gmcurl_linux_x64
chmod +x gmcurl_linux_x64
./gmcurl_linux_x64 --gmssl -k https://ebssec.boc.cn
./gmcurl_linux_x64 --gmssl -k https://110.4.1.1
5、参考资料:
https://curl.gmssl.cn/#v_about_sec3
https://www.tongsuo.net/docs/features/tengine
国密浏览器:
https://www.mesign.com/zh-cn/browser/
https://www.qianxin.com/ctp/gmbrowser.html