前提条件
名称 | 说明 |
服务器的 IP 地址 | 服务器的 IP 地址,用于 PC 连接到服务器。 |
密码 | 登录服务器的密码。 |
用户名 | 登录服务器的用户名。 |
操作步骤
环境配置
yum install -y gcc gcc-c++ wget make perl pcre-devel zlib-devel
gmssl_openssl_2021.1011.tar.gz 在解压与安装中请勿修改,否则可能会导致安装错误。
以 nginx-1.18.0 为例,目录为 /usr/local,请根据您的实际环境与需求进行确定。# 切换至 /usr/local/ 目录下cd /usr/local/ # 下载 nginx-1.18.0wget -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
/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"
# 切换至 /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
国密标准证书安装
cloud.tencent.com 证书文件包到本地目录。解压缩后,可获得相关类型的证书文件。 其中包含 Nginx 文件夹和 CSR 文件:cloud.tencent.com_nginxcloud.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(可忽略该文件)cloud.tencent.com._sign.csr 文件/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 目录下。/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;}}/usr/local/nginx/sbin/nginx -t
https://cloud.tencent.com 进行访问。cd /usr/local/nginx/sbin./nginx
国际标准证书与国密标准证书双安装(可选)
1_root_bundle.crt 证书文件、2_cloud.tencent.com.crt 证书文件以及 3_cloud.tencent.com.key 私钥文件从本地目录拷贝到 Nginx 服务器的 /usr/local/nginx/conf/cert 目录下。/usr/local/nginx/conf/ 目录下的 nginx.conf 文件,并添加如下内容:SSLCertificateFile /usr/local/nginx/conf/cert/2_cloud.tencent.com.crtSSLCertificateKeyFile /usr/local/nginx/conf/cert/3_cloud.tencent.com.keySSLCertificateChainFile /usr/local/nginx/conf/cert/1_root_bundle.crt
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -s reload


