售前咨询
技术支持
渠道合作

国密 SM2 SSL 证书 Nginx 安装指南-linux版

一、获取SSL证书

       1.  获取证书文件

在您完成申请数安时代GDCA服务器证书的流程后,将获取一个证书包,内有两个文件夹,分别为加密证书(encrypt)与签名证书(sign)。解压,进行部署使用的是第二级文件夹Nginx_Other_Server目录下的证书文件,如示例:

加密证书:

签名证书:

 

       2.  获取私钥证书文件

请找到之前提交csr时生成的.key私钥文件,该文件为证书的私钥,后面配置要用到。如示例:

注:本指南www.trustauth.cn为示例域名,具体的证书名称或私钥.key名称是对应申请时候提交的域名或公网IP地址。

二、环境准备

1. Linux 操作系统;

2. Nginx -1.14.2 及以上版本(推荐使用最新稳定版),附下载链接: http://nginx.org/en/download.html;

3. 国密GDCA模块,点击gdcassl.tar.gz下载;

4. 国密 SM2 SSL 证书。

三、环境部署

1、安装Nginx(本指南以nginx.1.18.0为例,目录为/usr/local,用户请根据实际路径,进行操作即可)。在安装nginx前,需要确保系统安装了gcc-c++、pcre-devel 和zlib-devel 软件;

(1). 将上述步骤下载的nginx压缩包和gdcassl.tar.gz模块压缩包,上传至linux 操作系统/usr/local/目录下,分别解压;

(2). cd 进入nginx 的解压目录/usr/local/nginx.1.18.0,执行如下命令:

  
./configure \
--prefix=/usr/local/nginx \
--without-http_gzip_module \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_v2_module \
--with-file-aio \
--with-openssl="/usr/local/gmssl" \
--with-cc-opt="-I/usr/local/gmssl/include" \
--with-ld-opt="-lm"

注:具体环境请修改为对应目录路径,(同时这里只指定了几个需要的模块,其他模块用户可自行增加)。

(3). 上述步骤执行完成后,再输入make && make install,等待自动编译安装nginx。执行该步骤后,若无报错,则表示编译成功,可以开始配置证书;如果执行过程中出现如下图显示的错误:

则需要进入源码包nginx.1.18.0/auto/lib/openssl 目录,使用命令vi/vim编辑 conf 文件(请先备份),找到下面所示的四行代码:

CORE_INCS=”$CORE_INCS $OPENSSL/.openssl/include”

CORE_DEPS=”$CORE_DEPS $OPENSSL/.openssl/include/openssl/ssl.h”

CORE_LIBS=”$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a”

CORE_LIBS=”$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a”

修改为:

CORE_INCS=”$CORE_INCS $OPENSSL/include”

CORE_DEPS=”$CORE_DEPS $OPENSSL/include/openssl/ssl.h”

CORE_LIBS=”$CORE_LIBS $OPENSSL/lib/libssl.a”

CORE_LIBS=”$CORE_LIBS $OPENSSL/lib/libcrypto.a”

保存后,返回到源码包/usr/local/nginx.1.18.0目录下,先执行make clean,再重新执行(2)步骤的./configure命令编译和执行(3)步骤的 make && make install,进行自动安装。

2、编译安装完成后,cd 进入/usr/local/nginx/sbin 目录,用 ./nginx -t 命令检测是否正常,如下:

如上检测正常则输入./nginx 启动服务。

四、安装服务器证书

1、服务器上创建存放ssl证书的文件夹,下述以/nginx/conf下,创建命名为ssl的文件夹(示例);

2、解压上传 “一、获取SSL证书” 步骤里所要求的证书与创建CSR时生成的*.key文件到对应目录下(共三个文件,两个证书分别为www.trustauth.cn_encrypt_chain.crt与www.trustauth.cn_sign_chain.crt证书,一个私钥www.trustauth.cn.key文件);

3、配置ssl证书,进入/usr/local/nginx/conf下,vi/vim编辑 nginx.conf 文件,增加如下配置,然后保存。

国密证书SM2部署示例:

   server {
    listen 443 ssl;
    server_name www.trustauth.cn;   #证书绑定的网站域名

    #SM2签名证书
    ssl_certificate         /usr/local/nginx/conf/ssl/www.trustauth.cn_sign_chain.crt;
    ssl_certificate_key  /usr/local/nginx/conf/ssl/www.trustauth.cn.key;

    #SM2加密证书
    ssl_certificate        /usr/local/nginx/conf/ssl/www.trustauth.cn_encrypt_chain.crt;
    ssl_certificate_key  /usr/local/nginx/conf/ssl/www.trustauth.cn.key;
    #先配置签名证书,再配置加密证书,签名与加密证书的私钥key文件为同一个!
    ssl_session_timeout 5m;
    ssl_ciphers SM2-WITH-SMS4-SM3:ECDH:AESGCM:HIGH:MEDIUM:!RC4:!DH:!MD5:!aNULL:!eNULL;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
        root html; #默认的站点目录,请修改为对应目录
        index index.html index.htm;
}
}

RSA/SM2双证书部署示例:

   server {
    listen 443 ssl;
    server_name www.trustauth.cn;   #证书绑定的网站域名

    #RSA证书
    ssl_certificate        /usr/local/nginx/conf/ssl/www.trustauth.cn-rsa_chain.crt;
    ssl_certificate_key  /usr/local/nginx/conf/ssl/www.trustauth.cn-rsa.key;
    
    #SM2签名证书
    ssl_certificate         /usr/local/nginx/conf/ssl/www.trustauth.cn_sign_chain.crt;
    ssl_certificate_key  /usr/local/nginx/conf/ssl/www.trustauth.cn.key;

    #SM2加密证书
    ssl_certificate        /usr/local/nginx/conf/ssl/www.trustauth.cn_encrypt_chain.crt;
    ssl_certificate_key  /usr/local/nginx/conf/ssl/www.trustauth.cn.key;
    #SM2证书部署,先配置签名证书,再配置加密证书,签名加密证书的私钥key文件为同一个!
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-SM2-SM4-SM3:ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!3DES:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
        root html; #默认的站点目录,请修改为对应目录
        index index.html index.htm;
}
}

##注:以上是示例部署,若使用双证书部署,需要同时申请购买RSA/SM2的ssl证书,具体的 server_name、证书名称与存放目录路径、location等请根据实际情况匹配修改。

4、配置完保存,进行检测。cd 进入/usr/local/nginx/sbin 目录下,执行 ./nginx -t 命令检测是否正常,正常显示如下图:

如有提示错误,请根据错误进一步排除,直到显示正常。

5、重启Nginx服务,进入/usr/local/nginx/sbin 目录下,执行 ./nginx -s reload命令重启服务。

五、访问测试

支持访问的浏览器不限于“360安全浏览器V10(信创版)”、“360安全浏览器”、“360企业安全浏览器”、“赢达信信创安全浏览器(速龙安全浏览器)”、“红莲花安全浏览器”等。

如下,以使用“360安全浏览器V10(信创版)”与“360企业安全浏览器”进行示例,打开浏览器在地址栏输入https://www.trustauth.cn(证书实际绑定的域名地址,测试是否能正常访问及显示绿锁,如无法正常访问,请确保防火墙或策略问题,放行证书配置的端口,上述为443端口)。

1、360安全浏览器V10(信创版)设置,打开浏览器点击右上角的按钮-》“选项”-》“高级功能”,确保“国密通信协议”栏目已勾选“启用国密SSL协议支持”的复选框,如下:

访问效果示例:

2、360企业安全浏览器设置,打开浏览器,点击右上角按钮-》“设置”-》“安全设置”,确保“国密通信协议”栏目已勾选“启用国密SSL协议支持”的复选框,如下:

访问效果示例:

注:根据上述设置操作后,若第一次访问出现非国密证书的,请刷新页面。若依然显示非国密证书的,请清理浏览器缓存,接着关闭当前浏览器,然后重开浏览器访问即可。

六、备份和恢复

在您完成服务器证书的安装与配置后,请务必要备份好您的服务器证书,避免证书遗失给您造成不便。

        1.  备份服务器证书

备份上述服务器证书私钥.key文件,服务器证书*.crt,即可完成服务器证书的备份操作。

        2.  恢复服务器证书

参照步骤“四、安装服务器证书”即可完成恢复操作。

七、证书遗失处理

若您的证书文件损坏或者丢失且没有证书的备份文件,请联系GDCA(客服热线 020-83701503 / 020-83701502)办理遗失补办业务,重新签发服务器证书。

 

领取优惠
免费预约

申请试用

提交成功!

咨询客服