nginx 1.18配置有chain中間證書的ssl服務

由于nginx早期版本有安全問題,需要升級版本。于是nginx升級成了docker,順便上了ssl證書,記錄一下操作過程。

一,證書合并

一般nginx的ssl證書,包含有一個key私鑰文件,一個crt公鑰證書文件。如果有chain.crt中間證書文件,可以將這個中間證書的內容cp出來,放到公鑰crt的后面即可。

中間證書的作用,參考url:https://www.myssl.cn/home/article-0403-22.html
為了保證Nginx可以兼容所有瀏覽器,我們必須在服務器上安裝中間證書,請到 中間證書下載工具,輸入您的Server.crt,然后下載中間證書,請將中間證書保存為Chain.crt。

我們需要將中間證書Chain.crt加入到服務器證書Server.crt文件中,請將Chain.crt中的所有內容復制,并粘貼到Server.crt,順序是: 第一段,服務器證書;第二段,中間證書,如下:

-----BEGIN CERTIFICATE-----
MIIEsTCCA5mgAwIBAgIDBfoqMA0GCSqGSIb3DQEBCwUAMEcxCzAJBgNVBAYTAlVT
………Server Certificate…………
T0hUGo/wiwTBUafyk1A+LlSUE+dYqzbHYV9Q4d83UIzz9vXO4wmSRgV0udjGN2GR
W7oiGmI=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEsTCCA5mgAwIBAgIDBfoqMA0GCSqGSIb3DQEBCwUAMEcxCzAJBgNVBAYTAlVT
………Chain Certificate…………
T0hUGo/wiwTBUafyk1A+LlSUE+dYqzbHYV9Q4d83UIzz9vXO4wmSRgV0udjGN2GR
W7oiGmI=
-----END CERTIFICATE-----

二,nginx conf更新

在想啟用ssl的server段,加上如下配置,實現https訪問,并自動從80端口跳轉。

        listen       80;
        listen       443 ssl;
        server_name  do.it.com.cn;

        ssl_certificate      /etc/nginx/conf.d/it.com.cn.crt;
        ssl_certificate_key  /etc/nginx/conf.d/it.com.cn.key;
        ssl_protocols        TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers          ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers  on;

        if ($server_port = 80) {
                rewrite ^(.*)$ https://$host$1 permanent;
        }
        root /usr/share/nginx/html;

三,Dockerfile生成

如果nginx是作為后端代理用途,nginx的所有東東,最好固定無變化,保證性能和穩(wěn)定性。(那兩個證書文件copy的位置,要契合nginx.conf中配置的定位)

FROM it.com.cn/base/middleware/nginx:1.18-alpine

MAINTAINER 'It'
LABEL version="1.0"

COPY conf/nginx.conf /etc/nginx/
COPY conf/it.conf /etc/nginx/conf.d/
COPY conf/notice.conf /etc/nginx/conf.d/
COPY conf/jenkins.conf /etc/nginx/conf.d/
COPY ssl/it.com.cn.key /etc/nginx/conf.d/
COPY ssl/it.com.cn.crt /etc/nginx/conf.d/
COPY html  /usr/share/nginx/html

RUN rm -rf /etc/nginx/conf.d/default.conf \
    && chmod -R 755 /usr/share/nginx/html \
    && echo "finished."

四,啟動命令

方便日常維護

#/bin/sh
docker run -itd \
  --name do-it \
  -p 80:80  -p 443:443 \
  it.com.cn/it/https-do-it:nginx-1.18-alpine

五,測試

略。。。

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

友情鏈接更多精彩內容