Nginx安裝配置
- 下載Nginx
下載地址:http://nginx.org/en/download.html
- 安裝Nginx
A.Nginx不需要安裝,直接將下載的程序解壓縮到C盤根目錄(視實際情況而定,此處根目錄只供參考)。
Nginx解壓的目錄儘量使用英文路徑,且不要有空格,避免不必要的錯誤,如:C:\nginx |
B.打開命令提示符CMD,進入nginx目錄,如:cd C:\nginx\nginx-1.12.2,運行命令: start nginx : 啓動nginx。
啓動Nginx後,在瀏覽器中訪問http://localhost,可以看到默認的歡迎頁
Nginx常用命令如下:
start nginx : 啓動nginx
nginx -s reload :修改配置後重新加載生效
nginx -s reopen :重新打開日誌文件
nginx -t -c C:\nginx\nginx-1.12.2\conf\nginx.conf 測試nginx配置文件是否正確
nginx -s stop :快速停止nginx
nginx -s quit :完整有序的停止nginx
OpenSLL安裝配置
- 獲得OpenSLL
Windows環境建議下載編譯好的包,直接安裝。下載地址: http://slproweb.com/products/Win32OpenSSL.html
- 安裝OpenSSL
1、雙擊Win64OpenSSL-1_1_1a.exe
2、選擇安裝目錄(安裝目錄建議不要存在空格)
3、選擇資源文件存放路徑,點擊安裝完成安裝
- 配置OpenSSL
設置環境變量,例如工具安裝在C:\OpenSSL-Win64,則將C:\OpenSSL-Win64\bin;複製到Path中
打開命令行程序cmd(以管理員身份運行),進入 Openssl 所在目錄,運行以下命令確認是否安裝成功
openssl 或直接執行 start C:\OpenSSL-Win64\bin\openssl.exe
- 使用openssl生成證書
創建一個文件夾存放生成的證書,如:“C:/SSLKeys”.打開命令控制檯,進入C:/SSLKeys目錄
- 生成根級證書
1、創建根證私鑰
openssl genrsa -out root-key.key 1024
2、創建根證書請求文件
openssl req -new -out root-req.csr -key root-key.key
3、自籤根證書
openssl x509 -req -in root-req.csr -out root-cert.cer -signkey root-key.key -CAcreateserial -days 3650
創建根證書請求時,會讓填寫信息,其中國家,省市,公司等需要和後面的證書保持一致.後面challenge password的地方直接回車就好。
- 生成服務端證書
1、生成服務端key
openssl genrsa -out server-key.key 1024
2、生成服務端請求文件
openssl req -new -out server-req.csr -key server-key.key
3、生成服務端證書(root證書,rootkey,服務端key,服務端請求文件這4個生成服務端證書)
openssl x509 -req -in server-req.csr -out server-cert.cer -signkey server-key.key -CA root-cert.cer -CAkey root-key.key -CAcreateserial -days 3650
創建根證書請求時,會讓填寫信息,其中國家,省市,公司等需要跟創建根證書時填寫一致。
- 生成客戶端證書
1、生成客戶端key
openssl genrsa -out client-key.key 1024
2、生成客戶端請求文件
openssl req -new -out client-req.csr -key client-key.key
3、生成客戶端證書(root證書,rootkey,客戶端key,客戶端請求文件這4個生成客戶端證書)
openssl x509 -req -in client-req.csr -out client-cert.cer -signkey client-key.key -CA root-cert.cer -CAkey root-key.key -CAcreateserial -days 3650
4、生成客戶端p12格式根證書(密碼設置123456)
openssl pkcs12 -export -clcerts -in client-cert.cer -inkey client-key.key -out client.p12
創建根證書請求時,會讓填寫信息,其中國家,省市,公司等需要跟創建根證書時填寫一致。
- 生成證書
經過上面的操作,我們生成的證書如下:
- 證書的配置
- 服務器Niginx配置
修改Nginx配置文件C:\nginx\nginx-1.12.2\conf\nginx.conf:
在server上方新增:
upstream test{
server 192.168.10.1:8080 weight=2; #服務器A的訪問ip和端口
server 192.168.10.2:8080 weight=1; #服務器B的訪問ip和端口
}
修改server配置爲:
server {
listen 443 ssl;
server_name localhost;
ssl_certificate C:/SSLKeys/nginx/server-cert.cer; #server證書公鑰
ssl_certificate_key C:/SSLKeys/nginx/server-key.key; #server私鑰
ssl_client_certificate C:/SSLKeys/nginx/root-cert.cer; #根級證書公鑰,用於驗證各個二級client
ssl_verify_client on; #開啓客戶端證書驗證
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;
proxy_pass http://test;
proxy_redirect default;
}
}
Nginx配置最終如下(下圖爲nginx.conf修改部分):
port:(注意)SSL認證的端口,修改爲443接口,避免瀏覽器訪問時還需要輸入端口號。
參考上述啓動Nginx的方式啓動Nginx,在瀏覽器中輸入
https://ip/index。以下爲IE顯示效果:
點擊繼續瀏覽此網站,則出現400錯誤,是因爲我們客戶端證書還沒有導入。
- 客戶端證書導入
1、雙擊“client.p12”導入客戶端證書(默認會添加到IE瀏覽器,Firefox需要自己添加你的證書client.p12)
再次使用瀏覽器訪問服務端,瀏覽器會讓我們選擇使用的證書。