文档中心>SSL 证书>证书安装>国密标准(SM2)SSL 证书安装>DNSPod>Nginx For Linux 国密 SSL 证书安装(DNSPod)

Nginx For Linux 国密 SSL 证书安装(DNSPod)

最近更新时间:2024-10-22 17:13:32

我的收藏

操作场景

本文档指导您如何在 Nginx 服务器中安装国密标准 DNSPod SSL 证书。
说明:
Nginx 版本以 nginx/1.18.0 为例。
本文档以证书名称 cloud.tencent.com 为例。
当前服务器的操作系统为 CentOS 7,由于操作系统的版本不同,详细操作步骤略有区别。
安装 SSL 证书前,请您在 Nginx 服务器上开启 “443” 端口,避免证书安装后无法启用 HTTPS。具体请参见 服务器如何开启443端口?
SSL 证书文件上传至服务器方法请参见 如何将本地文件拷贝到云服务器

前提条件

已准备远程文件拷贝软件,例如 WinSCP(建议从官方网站获取最新版本)。若您需部署到腾讯云云服务器,建议使用云服务器的文件上传功能。详情请参见 上传文件到云服务器
已准备远程登录工具,例如 PuTTY 或者 Xshell(建议从官方网站获取最新版本)。
已购买国密标准(SM2)DNSPod SSL 证书。
安装 SSL 证书前需准备的数据如下:
名称
说明
服务器的 IP 地址
服务器的 IP 地址,用于 PC 连接到服务器。
密码
登录服务器的密码。
用户名
登录服务器的用户名。
说明:
在腾讯云官网购买的云服务器,您可以登录 云服务器控制台 获取服务器 IP 地址、用户名及密码。

操作步骤

环境配置

说明:
国密标准 DNSPod SSL 证书安装在 Nginx 服务器上,Nginx 服务器需具备相关环境支持模块。下文将指导您编译配置支持国密标准 DNSPod SSL 证书的 Nginx 服务器。
下述步骤中的目录皆是测试环境的目录,具体路径请根据您的实际环境与需求进行确定。
1. 远程登录 Apache 服务器。例如,使用 PuTTY工具 登录。
2. 安装编译依赖包。如果您的系统是全新的,请先在服务器上安装以下依赖包,为编译提供环境支持。您可以使用如下命令进行安装。
yum install -y gcc gcc-c++ wget make perl pcre-devel zlib-devel
3. 下载并编译安装 Nginx。您可以通过在服务器上按以下顺序输入命令,下载 Nginx 国密版和国密模块至服务器并编译安装,由于操作系统的版本不同,详细操作步骤略有区别。
注意:
DNSPod 国密模块文件名 gmssl_openssl_2021.1011.tar.gz 在解压与安装中请勿修改,否则可能会导致安装错误。 以 nginx-1.18.0 为例,目录为 /usr/local,请根据您的实际环境与需求进行确定。
3.1 下载 Nginx 国密版和国密模块。
# 切换至 /usr/local/ 目录下
cd /usr/local/
# 下载 nginx-1.18.0
wget -c http://nginx.org/download/nginx-1.18.0.tar.gz
# 下载 DNSPod 国密模块
wget -c https://certificate-1258344699.cos.ap-guangzhou.myqcloud.com/public/gmssl_openssl_2021.1011.tar.gz
# 解压已下载的 nginx-1.18.0 压缩包
tar -zvxf nginx-1.18.0.tar.gz
# 解压已下载的 gmssl_openssl_2021.1011 压缩包
tar -zvxf gmssl_openssl_2021.1011.tar.gz
3.2 编辑 /usr/local/nginx-1.18.0/auto/lib/openssl/conf 文件,指向静态 gmssl,修改内容如下:
修改前:
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"
3.3 编译安装 Nginx。
# 切换至 /usr/local/ 目录下
cd /usr/local/
# 指定编译目录路径与编译模块。如需其他模块可自行增加
./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"
# 编译安装
make && make install

国密标准证书安装

1. 已在 SSL 证书控制台 中下载并解压缩 cloud.tencent.com 证书文件包到本地目录。解压缩后,可获得相关类型的证书文件。 其中包含 Nginx 文件夹和 CSR 文件:
文件夹名称:cloud.tencent.com_nginx
文件夹内容:
cloud.tencent.com.key 私钥文件
cloud.tencent.com._sign_bundle.crt 签名证书文件
cloud.tencent.com._sign.key 签名证书私钥文件
cloud.tencent.com._sign_bundle.pem(可忽略该文件)
cloud.tencent.com._encrypt_bundle.crt 加密证书文件
cloud.tencent.com._encrypt.key 加密证书私钥文件
cloud.tencent.com._encrypt_bundle.pem(可忽略该文件)
CSR 文件内容:
cloud.tencent.com._sign.csr 文件
说明:
CSR 文件是申请证书时由您上传或系统在线生成的,提供给 CA 机构。安装时可忽略该文件。
2. 使用 “WinSCP”(即本地与远程计算机间的复制文件工具)登录 Apache 服务器。
说明:
WinSCP 上传文件操作请参见 通过 WinSCP 上传文件到 Linux 云服务器
若您需部署到腾讯云云服务器,建议使用云服务器的文件上传功能。详情请参见 上传文件到云服务器
3. 进入 /usr/local/nginx/conf 目录,新建 cert 目录。
cd /usr/local/nginx/conf/
mkdir cert
将已获取到的 cloud.tencent.com.key 私钥文件、cloud.tencent.com._sign_bundle.crt 签名证书文件、cloud.tencent.com._sign.key 签名证书私钥文件、cloud.tencent.com._encrypt_bundle.crt 加密证书文件、cloud.tencent.com._encrypt.key 加密证书私钥文件 从本地目录拷贝到 Nginx 服务器的 /usr/local/nginx/conf/cert 目录下。
4. 进入 /usr/local/nginx/conf 目录,编辑 nginx.conf 文件,添加如下配置:
server
{
listen 443 ssl;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
# 国密算法加密套件
ssl_ciphers ECC-SM4-GCM-SM3:ECC-SM4-CBC-SM3:ECDHE-RSA-AES128-GCM-SHA256:AES128-SHA:DES-CBC3-SHA;
ssl_verify_client off;
# 签名证书/私钥
ssl_certificate /usr/local/nginx/conf/cert/cloud.tencent.com._sign_bundle.crt;
ssl_certificate_key /usr/local/nginx/conf/cert/cloud.tencent.com._sign.key;
# 加密证书/私钥
ssl_certificate /usr/local/nginx/conf/cert/cloud.tencent.com._encrypt_bundle.crt;
ssl_certificate_key /usr/local/nginx/conf/cert/cloud.tencent.com._encrypt.key;
location /
{
root html;
index index.html index.htm;
}
}
5. 配置国密 license 许可。
请在 SSL 证书控制台 国密 DNSPod 证书详情页下载国密 license 文件(文件名: gmssl_xxxx.lic)到本地目录,并将其上传到 Nginx 服务器的 /etc 目录下。
6. 您可通过执行以下命令验证配置文件问题。
/usr/local/nginx/sbin/nginx -t
若提示 Syntax OK,则表示配置正常,可以启动 Nginx 服务。
若提示非 Syntax OK,请您重新配置或者根据提示修改存在问题。
7. 执行以下命令启动 Nginx 服务,即可使用 https://cloud.tencent.com 进行访问。
cd /usr/local/nginx/sbin
./nginx
如果浏览器地址栏显示安全锁标识,则说明证书安装成功。如下图所示:



如果网站访问异常,可参考以下常见问题解决方案进行处理:

国际标准证书与国密标准证书双安装(可选)

若您需要通过国际标准证书与国密标准证书双证书安装的方式解决浏览器兼容性问题。您可以通过以下操作设置:
说明:
腾讯云提供免费的 DV 型 SSL 证书以供购买了国密标准 DNSPod 证书的用户顺利解决浏览器兼容问题。申请证书请查看 域名型(DV)免费 SSL 证书
1. 使用 WinSCP(即本地与远程计算机间的复制文件工具),将已获取到的国际标准证书中的 1_root_bundle.crt 证书文件、2_cloud.tencent.com.crt 证书文件以及 3_cloud.tencent.com.key 私钥文件从本地目录拷贝到 Nginx 服务器的 /usr/local/nginx/conf/cert 目录下。
说明:
WinSCP 上传文件操作请参见 通过 WinSCP 上传文件到 Linux 云服务器
若您需部署到腾讯云云服务器,建议使用云服务器的文件上传功能。详情请参见 上传文件到云服务器
2. 编辑 /usr/local/nginx/conf/ 目录下的 nginx.conf 文件,并添加如下内容:
SSLCertificateFile /usr/local/nginx/conf/cert/2_cloud.tencent.com.crt
SSLCertificateKeyFile /usr/local/nginx/conf/cert/3_cloud.tencent.com.key
SSLCertificateChainFile /usr/local/nginx/conf/cert/1_root_bundle.crt
3. 您通过执行以下命令验证配置文件问题。
/usr/local/nginx/sbin/nginx -t
若提示 Syntax OK ,则表示配置正常,可以启动 Nginx 服务。
若提示非 Syntax OK ,请您重新配置或者根据提示修改存在问题。
4. 重新加载 Nginx 服务配置,即可解决浏览器兼容问题。
/usr/local/nginx/sbin/nginx -s reload
注意:
操作过程如果出现问题,请您 联系我们