目錄
- 一、下載安裝OpenSSL
- 二、證書生成
- 三、修改nginx配置
- 總結
Nginx 是一個高性能的HTTP和反向代理web服務器,在進行web項目開發時,大多都是使用nginx對外提供web服務。HTTPS (全稱:Hypertext Transfer Protocol Secure [5]),是以安全為目標的 HTTP 通道,在HTTP的基礎上通過傳輸加密和身份認證保證了傳輸過程的安全性。在nginx中配置https能夠為我們提供更為安全的web服務,下面便是nginx中配置https的具體實現步驟:
一、下載安裝OpenSSL
-
下載OpenSSL
訪問 https://slproweb.com/products/Win32OpenSSL.html 選擇合適版本下載
-
安裝OpenSSL
下載完畢后根據提示進行安裝。
-
配置OpenSSL環境變量
安裝完成后,添加環境變量
OPENSSL_HOME
,變量值為openssl的安裝目錄,并在Path中新建環境變量%OPENSSL_HOME%\bin
-
驗證是否安裝成功
打開cmd,輸入命令:
openssl -version
,出現以下提示,即安裝成功。
二、證書生成
-
創建私鑰
在cmd中使用以下命令創建私鑰文件,取名為
local-private.key
并保存在指定目錄下。openssl genpkey -algorithm RSA -out D:/local-private.key -pkeyopt rsa_keygen_bits:2048
參數解釋:
參數 含義 作用 -algorithm RSA 指定密鑰算法 使用 RSA 非對稱加密算法(目前最廣泛的標準) -out D:/local-private.key 輸出文件路徑 生成的私鑰將保存到 D:/local-private.key
(Windows路徑)-pkeyopt rsa_keygen_bits:2048 密鑰位長選項 指定生成的 RSA 密鑰長度為2048位(安全標準值) -
生成簽名
在cmd中使用以下命令生成名為
local-csr.csr
的簽名文件并保存在指定目錄下。openssl req -new -key D:/local-private.key -out D:/local-csr.csr
參數解析:
參數 含義 作用 -key D:/local-private.key 私鑰文件路徑 使用指定的 RSA 私鑰生成 CSR(必需) -out D:/local-csr.csr 輸出文件路徑 生成的 CSR 文件保存位置 運行以上命令,會提示輸入一些證書信息,如:國家、省份、城市、組織、單位等,只需根據提示輸入即可。
-
生成證書
在cmd中使用以下命令生成有效期一年,名為
local-cert.crt
的證書文件并保存在指定目錄下。openssl req -x509 -key D:/local-private.key -in D:/local-csr.csr -out D:/local-cert.crt -days 365
參數解釋:
參數 含義 作用 -x509 生成X509證書 指定生成標準 X.509 格式的證書 -key D:/local-private.key 私鑰文件路徑 用于簽名的私鑰(必須與生成 CSR 的私鑰匹配) -in D:/local-csr.csr 輸入的CSR文件 之前生成的證書簽名請求 -out D:/local-cert.crt 輸出證書路徑 最終生成的自簽名證書文件 -days 365 有效期 證書的有效時長(365天)
三、修改nginx配置
找到nginx的配置文件nginx.conf
,參考下面的配置進行修改
#user root;
worker_processes 1;events {worker_connections 1024;
}http {include mime.types;default_type application/octet-stream;server {listen 80;server_name localhost localhost;return 301 https://$host$request_uri;}server {listen 443 ssl;server_name localhost;ssl_certificate D:/local-cert.crt;ssl_certificate_key D:/local-private.key;ssl_session_cache shared:SSL:1m;ssl_session_timeout 5m;ssl_ciphers HIGH:!aNULL:!MD5;ssl_prefer_server_ciphers on;location / {root html;index index.html index.htm;}}
}
修改完畢后,保存配置文件,并重新啟動nginx,在瀏覽器地址欄中輸入https://localhost進行訪問,效果如下:
總結
本文簡單的介紹了在Windows系統下,nginx配置https的步驟,使用OpenSSL生成了證書,并在nginx配置文件nginx.conf中指定證書路徑,將80端口重定向為https訪問路勁。
相信按照以上步驟,都能夠很好的視實現nginx配置https。