Nginx配置SSL證書

一、部署

啟動容器

docker run -d -p 80:80 -p 443:443 -v /root/docker/nginx/html:/usr/share/nginx/html  -v /root/docker/nginx/nginx.conf:/etc/nginx/nginx.conf  -v /root/docker/nginx/conf.d:/etc/nginx/conf.d -v /root/docker/nginx/nginx:/var/log/nginx --name nginx nginx


二、騰訊云SSL證書部署

申請證書后,從網(wǎng)站下載證書,解壓。如下是騰訊云的SSL證書的目錄結(jié)構(gòu)。

chenjie.asia
│   chenjie.asia.csr
│   chenjie.asia.key  
│   chenjie.asia.pem
└───Apache
│   │   1_root_bundle.crt
│   │   2_chenjie.asia.crt
│   │   3_chenjie.asia.key
│   
└───IIS
│   │   chenjie.asia.pfx
│   │   keystorePass.txt
│
└───Nginx
│   │   1_chenjie.asia_bundle.crt
│   │   2_chenjie.asia.key
│
└───Tomcat
│   │   chenjie.asia.jks
│   │   keystorePass.txt

因?yàn)槲覀兪褂玫氖荖ginx,所以將Nginx下的1_chenjie.asia_bundle.crt和2_chenjie.asia.key文件復(fù)制到/root/docker/nginx/conf.d/cert目錄下,因?yàn)閿?shù)據(jù)卷映射關(guān)系,證書會被映射到容器中,路徑為/etc/nginx/conf.d/cert/。

然后配置default.conf文件,配置如下:

server {
    listen  80;
    #SSL 訪問端口號為 443
    listen 443 ssl; 
    #填寫綁定證書的域名
    server_name cloud.tencent.com; 
    #證書文件名稱
    ssl_certificate /etc/nginx/conf.d/cert/1_chenjie.asia_bundle.crt;
    #私鑰文件名稱
    ssl_certificate_key /etc/nginx/conf.d/cert/2_chenjie.asia.key;

    ssl_session_timeout 5m;
    #請按照以下協(xié)議配置
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
    #請按照以下套件配置,配置加密套件,寫法遵循 openssl 標(biāo)準(zhǔn)。
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
    ssl_prefer_server_ciphers on;

    charset utf-8;
    access_log  /var/log/nginx/access.log  main;
    error_log /var/log/nginx/access.err;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

}

Nginx 版本為 nginx/1.15.0 以上請使用 listen 443 ssl 代替 listen 443 和 ssl on。

配置完成后重啟nginx容器,或進(jìn)入容器執(zhí)行/usr/sbin/nginx -s reload

訪問http://chenjie.asia/https://chenjie.asia/
都能成功。


三、自建SSL證書并部署

制作密鑰

openssl genrsa -out chenjie.key 2048

制作證書

 openssl req -new -x509 -days 365 -key test.key -out chenjie.crt

獲取到密鑰和證書。

步驟同上,將chenjie.key和chenjie.crt放到/root/docker/nginx/conf.d/ssl目錄下。
然后配置default.conf文件:

server {
    listen  80;
    #SSL 訪問端口號為 443
    listen 443 ssl; 
    #填寫綁定證書的域名
    server_name cloud.tencent.com; 
    #證書文件名稱
#    ssl_certificate /etc/nginx/conf.d/cert/1_chenjie.asia_bundle.crt;
    #私鑰文件名稱
#    ssl_certificate_key /etc/nginx/conf.d/cert/2_chenjie.asia.key;
    ssl_certificate /etc/nginx/conf.d/ssl/chenjie.crt;
    ssl_certificate_key /etc/nginx/conf.d/ssl/chenjie.key;


    ssl_session_timeout 5m;
    #請按照以下協(xié)議配置
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
    #請按照以下套件配置,配置加密套件,寫法遵循 openssl 標(biāo)準(zhǔn)。
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
    ssl_prefer_server_ciphers on;

    charset utf-8;
    access_log  /var/log/nginx/access.log  main;
    error_log /var/log/nginx/access.err;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

}

重啟nginx,訪問https時會提示證書不受信任。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容