国密SSL网站部署及验证
准备支持国密SSL的浏览器
- windows:360浏览器信安版
- Mac:Samarium浏览器
使用已支持国密SSL的网站验证浏览器可用性
- 中国银行:https://ebssec.boc.cn/. 该网站不支持国密SSL算法的浏览器无法打开
部署自家网站
以下步骤基本来源于https://www.gmssl.cn, 也可跳过直接参考该网站
环境
阿里云CentOS7.8
国密版OpenSSL压缩包下载
进入gmssl网站后,再国密web服务器下载栏目下下载”openssl国密版”
国密版OpenSSL解压
上传到服务器/root目录后,解压到/usr/local目录下.
最终输出目录/usr/local/gmssl。tar xzfm xxx.tar.gz -C /usr/local
国密版nginx源码压缩包下载
国密版nginx源码解压
tar xzfm nginx-1.18.0.tar.gz
pcre-devel依赖安装
yum install pcre-devel
不安装会因依赖丢失导致后续make install无法执行
编辑nginx下openssl配置
vim root/nginx-1.18.0/auto/lib/openssl/conf,将全部$OPENSSL/.openssl全部替换为$OPENSSL,即删除/.openssl部分。
返回/root/nginx-1.18.0目录执行编译指令
1 | ``` |
server {
if ($host = www.svinvy.com) {
return 301 https://$host$request_uri;
}
listen 80 default_server;
listen [::]:80 default_server;
server_name www.svinvy.com;
#…转发到443
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name www.svinvy.com;
ssl_certificate /etc/letsencrypt/live/www.svinvy.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.svinvy.com/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECC-SM4-SM3:ECDH:AESGCM:HIGH:MEDIUM:!RC4:!DH:!MD5:!aNULL:!eNULL;
ssl_verify_client off;
ssl_certificate /root/svinvy/sm2.svinvy.com.sig.crt.pem;
ssl_certificate_key /root/svinvy/sm2.svinvy.com.sig.key.pem;
ssl_certificate /root/svinvy/sm2.svinvy.com.enc.crt.pem;
ssl_certificate_key /root/svinvy/sm2.svinvy.com.enc.key.pem;
#…同时配置rsa及sm2证书
}
1 | > *nginx命令地址: /usr/local/nginx/sbin/nginx* |
nginx -s stop
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx
***
## **注意点**
- 需保留rsa证书配置以支持原ssl传输,因大多数浏览器并不支持国密算法形式。
- ssl_ciphers配置与国密实验室提供的有所不同