環(huán)境配置
國(guó)密標(biāo)準(zhǔn) SSL 證書安裝在 Nginx 服務(wù)器上,Nginx 服務(wù)器需具備相關(guān)環(huán)境支持模塊。
目錄皆是測(cè)試環(huán)境的目錄,具體路徑請(qǐng)根據(jù)您的實(shí)際環(huán)境與需求進(jìn)行確定。
1. 遠(yuǎn)程登錄 Nginx 服務(wù)器。
2. 安裝編譯工具:如果您的系統(tǒng)是全新的,請(qǐng)先在服務(wù)器上安裝 C++ 開發(fā)環(huán)境、pcre-devel、zlib-devel 軟件為編譯提供環(huán)境支持。
您可以使用如下命令進(jìn)行安裝。
#安裝 C++ 開發(fā)環(huán)境yum install -y gcc gcc-c++
#安裝 pcre-develyum install pcre-devel -y
#安裝 zlib-develyum install zlib-devel -y
3. 下載并編譯安裝 Nginx:您可以通過(guò)在服務(wù)器上按以下順序輸入命令,下載 Nginx 國(guó)密版和國(guó)密模塊至服務(wù)器并編譯安裝,由于操作系統(tǒng)的版本不同,詳細(xì)操作步驟略有區(qū)別。
注意
以 nginx-1.18.0 為例,目錄為 /usr/local,請(qǐng)根據(jù)您的實(shí)際環(huán)境與需求進(jìn)行確定。
國(guó)密模塊文件名 aaa_ssl.tar.gz 在解壓與安裝中請(qǐng)勿修改,否則可能會(huì)導(dǎo)致安裝錯(cuò)誤。
#切換至 /usr/local/ 目錄下cd /usr/local/
#下載 nginx-1.18.0wget -c http://nginx.org/download/nginx-1.18.0.tar.gz
#下載國(guó)密SM2模塊wget -c https://www.wotrus.com/download/wotrus_ssl.tar.gz
#解壓已下載的 nginx-1.18.0 壓縮包tar -zvxf nginx-1.18.0.tar.gz
#解壓已下載的國(guó)密SM2模塊壓縮包tar -zvxf wotrus_ssl.tar.gz
#進(jìn)入解壓后的 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
4. 如果編譯執(zhí)行過(guò)程中出現(xiàn) make[1]: *** [/usr/local/wotrus_ssl2.0/.openssl/include/openssl/ssl.h] Error 127 錯(cuò)誤。則需要進(jìn)入 nginx-1.18.0/auto/lib/openssl 目錄,編輯 conf 文件。需修改如下內(nèi)容:
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"
5. 保存文件后,需先執(zhí)行 make clean 清除編譯配置,再重新進(jìn)入 nginx-1.18.0 文件夾執(zhí)行 ./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。
國(guó)密標(biāo)準(zhǔn)證書安裝
1. 已下載并解壓縮 cloud.22.cn 證書文件包到本地目錄。 解壓縮后,可獲得相關(guān)類型的證書文件。 其中包含 Nginx 目錄和 CSR 文件:
文件夾名稱:Nginx
文件夾內(nèi)容:
1_cloud.22.cn_sign_bundle.crt 證書文件
2_cloud.22.cn_encrypt_bundle.crt 證書文件
3_cloud.22.cn.key 私鑰文件
CSR 文件內(nèi)容:
cloud.22.cn_sign.csr 文件
cloud.22.cn_encrypt.csr 文件
CSR 文件是申請(qǐng)證書時(shí)由您上傳或系統(tǒng)在線生成的,提供給 CA 機(jī)構(gòu)。安裝時(shí)可忽略該文件。
2. 使用 “WinSCP”(即本地與遠(yuǎn)程計(jì)算機(jī)間的復(fù)制文件工具)登錄 Nginx 服務(wù)器。
3. 進(jìn)入 /usr/local/nginx/conf 目錄,新建 sm2 目錄,將已獲取到的 1_cloud.22.cn_sign_bundle.crt 證書文件、2_cloud.22.cn_encrypt_bundle.crt 證書文件、3_cloud.22.cn.key 私鑰文件從本地目錄拷貝到該 sm2 目錄下。
4. 進(jìn)入/usr/local/nginx/conf 目錄,編輯 nginx.conf 文件,添加如下配置:
server { listen 443 ssl;
cloud.22.cn;
ssl_certificate /usr/local/nginx/conf/sm2/1_cloud.22.cn_sign_bundle.crt;
ssl_certificate_key /usr/local/nginx/conf/sm2/3_cloud.22.cn.key;
ssl_certificate /usr/local/nginx/conf/sm2/2_cloud.22.cn_encrypt_bundle.crt;
ssl_certificate_key /usr/local/nginx/conf/sm2/3_cloud.22.cn.key;
#先配置簽名證書,再配置加密證書,簽名加密證書私鑰key為同一個(gè)!
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;}}
說(shuō)明
以上配置內(nèi)容僅為參考,具體的證書名稱,證書目錄,location 等配置請(qǐng)根據(jù)實(shí)際環(huán)境配置。
5. 請(qǐng)您通過(guò)執(zhí)行以下命令驗(yàn)證配置文件問(wèn)題。
/usr/local/nginx/sbin/nginx -t
若提示 Syntax OK,則表示配置正常,可以啟動(dòng) Nginx 服務(wù)器。
若提示非 Syntax OK,請(qǐng)您重新配置或者根據(jù)提示修改存在問(wèn)題。
6. 重新啟動(dòng) Nginx 服務(wù)器,如果瀏覽器地址欄顯示安全鎖標(biāo)識(shí),則說(shuō)明證書安裝成功。
國(guó)際標(biāo)準(zhǔn)證書與國(guó)密標(biāo)準(zhǔn)證書雙安裝(可選)
若您需要通過(guò)國(guó)際標(biāo)準(zhǔn)證書與國(guó)密標(biāo)準(zhǔn)證書雙證書安裝的方式解決瀏覽器兼容性問(wèn)題。您可以通過(guò)以下操作設(shè)置:
2. 編輯 /usr/local/nginx/conf 目錄下的 ssl.conf 文件。
3. 請(qǐng)?jiān)?cloud.22.cn 下面換行,并添加如下內(nèi)容:
ssl_certificate /usr/local/nginx/conf/sm2/1_cloud.22.cn_bundle.crt;
ssl_certificate_key /usr/local/nginx/conf/sm2/2_cloud.22.cn.key;
4. 您通過(guò)執(zhí)行以下命令驗(yàn)證配置文件問(wèn)題。
/usr/local/nginx/sbin/nginx -t
若提示 Syntax OK ,則表示配置正常,可以啟動(dòng) Nginx 服務(wù)器。
若提示非 Syntax OK ,請(qǐng)您重新配置或者根據(jù)提示修改存在問(wèn)題。
5. 重新啟動(dòng) Nginx 服務(wù)器,即可解決瀏覽器瀏覽器兼容問(wèn)題。