nginx/1.18.0 为例。cloud.tencent.com 为例。前提条件
名称 | 说明 |
服务器的 IP 地址 | 服务器的 IP 地址,用于 PC 连接到服务器。 |
用户名 | 登录服务器的用户名。 |
密码 | 登录服务器的密码。 |
操作步骤
环境配置
#安装 C++ 开发环境yum install -y gcc gcc-c++ #安装 pcre-develyum install pcre-devel -y#安装 zlib-develyum install zlib-devel -y
nginx-1.18.0 为例,目录为 /usr/local,请根据您的实际环境与需求进行确定。wotrus_ssl.tar.gz 在解压与安装中请勿修改,否则可能会导致安装错误。#切换至 /usr/local/ 目录下cd /usr/local/ #下载 nginx-1.18.0wget -c http://nginx.org/download/nginx-1.18.0.tar.gz#下载国密SM2模块wget -c https://www.wotrus.com/download/wotrus_ssl.tar.gz#解压已下载的 nginx-1.18.0 压缩包tar -zvxf nginx-1.18.0.tar.gz#解压已下载的国密SM2模块压缩包tar -zvxf wotrus_ssl.tar.gz#进入解压后的 nginx-1.18.0 文件夹cd nginx-1.18.0/#指定编译目录路径与编译模块。如需其他模块可自行增加./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-stream --with-http_ssl_module --with-stream_ssl_module --with-openssl=/usr/local/wotrus_ssl2.0#编译安装 Nginxmake && make install
make[1]: *** [/usr/local/wotrus_ssl2.0/.openssl/include/openssl/ssl.h] Error 127 错误。则需要进入 nginx-1.18.0/auto/lib/openssl 目录,编辑 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"
make clean 清除编译配置,再重新进入 nginx-1.18.0 文件夹执行 ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-stream --with-http_ssl_module --with-stream_ssl_module --with-openssl=/usr/local/wotrus_ssl2.0与 make && make install。国密标准证书安装
cloud.tencent.com 证书文件包到本地目录。
解压缩后,可获得相关类型的证书文件。 其中包含 Nginx 目录和 CSR 文件:1_cloud.tencent.com_sign_bundle.crt 证书文件2_cloud.tencent.com_encrypt_bundle.crt 证书文件3_cloud.tencent.com.key 私钥文件cloud.tencent.com_sign.csr 文件cloud.tencent.com_encrypt.csr 文件/usr/local/nginx/conf 目录,新建 sm2 目录,将已获取到的 1_cloud.tencent.com_sign_bundle.crt 证书文件、2_cloud.tencent.com_encrypt_bundle.crt 证书文件、3_cloud.tencent.com.key 私钥文件从本地目录拷贝到该 sm2 目录下。/usr/local/nginx/conf 目录,编辑 nginx.conf 文件,添加如下配置:server { listen 443 ssl;cloud.tencent.com;ssl_certificate /usr/local/nginx/conf/sm2/1_cloud.tencent.com_sign_bundle.crt;ssl_certificate_key /usr/local/nginx/conf/sm2/3_cloud.tencent.com.key;ssl_certificate /usr/local/nginx/conf/sm2/2_cloud.tencent.com_encrypt_bundle.crt;ssl_certificate_key /usr/local/nginx/conf/sm2/3_cloud.tencent.com.key;#先配置签名证书,再配置加密证书,签名加密证书私钥key为同一个!ssl_session_timeout 5m;ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;ssl_ciphers ECC-SM4-SM3:ECDH:AESGCM:HIGH:MEDIUM:!RC4:!DH:!MD5:!aNULL:!eNULL;ssl_prefer_server_ciphers on;location / { root html; index index.html index.htm;}}location 等配置请根据实际环境配置。/usr/local/nginx/sbin/nginx -t
Syntax OK,则表示配置正常,可以启动 Nginx 服务器。Syntax OK,请您重新配置或者根据提示修改存在问题。https://cloud.tencent.com 进行访问。国际标准证书与国密标准证书双安装(可选)
1_root_bundle.crt 证书文件、2_cloud.tencent.com.key 私钥文件从本地目录拷贝到 Nginx 服务器的/usr/local/nginx/conf/sm2 目录下。 /usr/local/nginx/conf 目录下的 ssl.conf 文件。cloud.tencent.com 下面换行,并添加如下内容:ssl_certificate /usr/local/nginx/conf/sm2/1_cloud.tencent.com_bundle.crt; ssl_certificate_key /usr/local/nginx/conf/sm2/2_cloud.tencent.com.key;
/usr/local/nginx/sbin/nginx -t
Syntax OK ,则表示配置正常,可以启动 Nginx 服务器。Syntax OK ,请您重新配置或者根据提示修改存在问题。


