国密SSL网站部署及验证

国密SSL网站部署及验证

准备支持国密SSL的浏览器

使用已支持国密SSL的网站验证浏览器可用性

  1. 中国银行: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目录执行编译指令

--without-http_gzip_module --with-http_ssl_module --with-http_stub_status_module --with-http_v2_module --with-file-aio --with-openssl
1
2
3
4
5
```
### **安装国密版nginx**
make install
最终输出目录为/usr/local/nginx
### **参考如下配置,配置/usr/local/nginx/conf/nginx.conf**

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
2
>  *nginx命令地址: /usr/local/nginx/sbin/nginx*
### **停止原nginx服务,检测新nginx服务配置并启动**

nginx -s stop
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx

***
## **注意点**
- 需保留rsa证书配置以支持原ssl传输,因大多数浏览器并不支持国密算法形式。
- ssl_ciphers配置与国密实验室提供的有所不同