Nginx支援HTTPS,生成SSL證書
阿新 • • 發佈:2021-10-21
生成證書
# 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; } }
注意事項:
-
為方便演示,建立
/mydata/nginx/html/www/index.html
檔案 -
使用
netstat -nao | findstr :443
發現 VMware 共享虛擬機器佔用埠,進行修改: