在安装国密算法证书时,为了不同浏览器的自适应性,通常结合RSA算法证书一同安装。本文介绍如何在Tengine服务器安装RSA和SM2(国密算法)双算法证书。
前提条件
步骤一:配置BabaSSL和Tengine
在准备好的Linux服务器中安装使用的软件包,并完成BabaSSL和Tengine的配置。
- 在Linux服务器上执行以下命令安装需要使用的软件包。
yum -y install wget yum -y install git yum -y install gcc gcc-c++ yum -y install make yum -y install pcre pcre-devel yum -y install gzip yum -y install zlib-devel
- 在服务器上执行以下命令,下载BabaSSL和Tengine。
cd /opt #您可以在此处自定义BabaSSL和Tengine的安装目录。 wget -c https://github.com/BabaSSL/BabaSSL/archive/refs/tags/8.2.1.tar.gz git clone https://github.com/alibaba/tengine.git
- 在服务器上执行以下命令,编译安装BabaSSL和Tengine。
tar -zxvf 8.2.1.tar.gz #解压BabaSSL压缩包 cd tengine ./configure --prefix=/usr/local/tengine \ --add-module=modules/ngx_openssl_ntls \ --with-openssl=../BabaSSL-8.2.1 \ --with-openssl-opt="enable-ntls" \ --with-http_ssl_module \ --with-stream - \ -with-stream_ssl_module --with-stream_sni make -j1 make install
步骤二:下载证书到本地
请您按照如下步骤,下载RSA加密算法证书和SM2加密算法证书。
- 登录数字证书管理服务控制台。
- 在左侧导航栏,单击SSL证书。
- 在证书管理页签,定位到目标证书,在操作列单击下载。
- 在证书下载面板,单击Nginx服务器操作列的下载。
该操作会将Nginx服务器证书压缩包下载到本地,并保存在浏览器的默认下载位置。
- 解压已下载的Nginx服务器证书压缩包文件。
本示例解压后的文件如下:
- RSA加密算法证书:server_rsa.pem和server_rsa.key
- SM2加密算法证书:
- 签名证书:server_sign.pem和server_sign.key
- 加密证书:server_enc.pem和server_enc.key
步骤三:在Tengine服务器安装证书
- 登录Tengine服务器。
- 执行以下命令创建证书存放目录。
cd /usr/local/tengine/conf #证书默认安装目录,您可以根据实际配置调整。 mkdir cert #创建证书目录,命名为cert。
- 使用远程登录工具附带的本地文件上传功能,将证书相关文件上传到Tengine服务器的证书目录(示例中为/usr/local/tengine/conf)。
说明 如果您在申请证书时将 CSR生成方式设置为 手动填写,请将您手动创建的证书私钥文件上传至 /usr/local/nginx/conf/cert目录下。
- 编辑Tengine配置文件nginx.conf,修改与证书相关的配置。配置内容如下:
# HTTPS server server { listen 443 ssl; server_name ssl.certqa.cn; # 启用NTLS。Tengine针对BabaSSL中的NTLS功能进行了适配,本文使用BabaSSL作为Tengine的底层密码库来实现通信加密的能力。 enable_ntls on; # 配置RSA算法证书 ssl_sign_certificate cert / server_rsa.pem; ssl_sign_certificate_key cert / server_rsa.key; # 配置国密算法签名证书 ssl_enc_certificate cert / server_sign.pem; ssl_enc_certificate_key cert / server_sign.key; # 配置国密算法加密证书 ssl_certificate cert / server_enc.pem; ssl_certificate_key cert / server_enc.key; ssl_session_cache shared: SSL: 1 m; ssl_session_timeout 5 m; # 配置加密套件# ssl_ciphers HIGH: !aNULL: !MD5; ssl_ciphers ECDHE - RSA - AES128 - GCM - SHA256: AES128 - SHA: DES - CBC3 - SHA: ECC - SM4 - CBC - SM3: ECDHE - SM4 - GCM - SM3: ECC - SM4 - SM3; ssl_prefer_server_ciphers on; location / { root html; #Web网站程序存放目录。 index index.html index.htm; } } }
- 执行如下命令,重启Tengine服务。
cd /usr/local/tengine/bin #进入Tengine服务的可执行目录。 ./nginx -s reload #重新载入配置文件。
步骤四:验证安装是否成功
证书安装完成后,您可通过访问证书的绑定域名验证该证书是否安装成功。
https://yourdomain #需要将yourdomain替换成证书绑定的域名。
- 国密算法证书验证需要使用国密浏览器(例如密信浏览器)测试。证书安装成功效果如下:
- RSA加密算法证书使用Google、Firefox、Edge、360等浏览器测试。证书安装成功效果如下: