1. 程式人生 > 其它 >Nginx支援HTTPS,生成SSL證書

Nginx支援HTTPS,生成SSL證書

生成證書

# 1. 首先建立SSL證書私鑰,期間需要輸入兩次使用者名稱和密碼,生成檔案為blog.key;
openssl genrsa -des3 -out blog.key 2048

# 2. 利用私鑰生成一個不需要輸入密碼的金鑰檔案,生成檔案為blog_nopass.key;
openssl rsa -in blog.key -out blog_nopass.key

# 3. 建立SSL證書籤名請求檔案,生成SSL證書時需要使用到,生成檔案為blog.csr;
# 在生成過程中,我們需要輸入一些資訊,需要注意的是Common Name需要和網站域名一致;
openssl req -new -key blog.key -out blog.csr

# 4. 生成SSL證書,有效期為365天,生成檔案為blog.crt;
openssl x509 -req -days 365 -in blog.csr -signkey blog.key -out blog.crt

沒有域名也沒事,直接配置 hosts 檔案也是可以的


別忘了配完後重新整理 dns 快取: ipconfig/flushdns

使用docker搭建nginx環境,通過HTTPS訪問 Nginx 靜態內容

# 1. 配置環境

# 2. 配置nginx
docker run -p 80:80 -p 443:443 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx  \
-v /mydata/nginx/conf:/etc/nginx \
-d nginx:1.10

# 3. 新增配置檔案 /mydata/nginx/conf/conf.d/blog.conf,並配置
server {
    listen       80; # 同時支援HTTP
    listen       443 ssl; # 新增HTTPS支援
    server_name  engureguo.com;
  
    #SSL配置
    ssl_certificate      /usr/share/nginx/html/ssl/blog.crt; # 配置證書
    ssl_certificate_key  /usr/share/nginx/html/ssl/blog_nopass.key; # 配置證書私鑰
    ssl_protocols        TLSv1 TLSv1.1 TLSv1.2; # 配置SSL協議版本
    ssl_ciphers          ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; # 配置SSL加密演算法
    ssl_prefer_server_ciphers  on; # 優先採取伺服器演算法
    ssl_session_cache    shared:SSL:10m; # 配置共享會話快取大小
    ssl_session_timeout  10m; # 配置會話超時時間
 
    location / {
        root   /usr/share/nginx/html/www;
        index  index.html index.htm;
    }
 
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

注意事項:

  1. 為方便演示,建立 /mydata/nginx/html/www/index.html 檔案

  2. 使用 netstat -nao | findstr :443 發現 VMware 共享虛擬機器佔用埠,進行修改:

訪問 https://engureguo.com

通過HTTPS訪問 SpringBoot 應用

參考

沉舟側畔千帆過,病樹前頭萬木春。