Nginx的HTTPS服務
阿新 • • 發佈:2018-11-27
HTTPS實現加密的原理:
客戶端向服務端發起SSL連線請求(這是非對稱加密的),服務端收到連線請求後向客戶端傳送公鑰,這時客戶端收到公鑰後,進行對稱加密併發送給服務端,最後服務端利用對稱祕鑰向客戶端傳輸資料。
1、安裝OpenSSL
yum -y install openssl
2、進入到/etc/nginx/ssl_key目錄下生成key祕鑰
mkdir /etc/nginx/ssl_key cd /etc/nginx/ssl_key openssl genrsa -idea -out wen.key 1024 #生成一個名為wen.key的祕鑰 回車後提示要輸入密碼,設定的這個密碼要記住。 再回車就再輸入一次剛剛所設定的密碼 輸入了兩次密碼後能看到生成了一個名為wen.key的檔案
3、生成csr檔案
openssl req -new -key wen.key -out wen.csr #生成一個csr檔案
回車後可以隨意填寫一下資訊
遇到 A challenge password []: 這一行的時候可以直接回車,設定空密碼
接下來可以一路回車到結束
填完資訊結束後,可以看到當前目錄裡有個wen,csr檔案
4、生成crt檔案
openssl x509 -req -days 3650 -in wen.csr -signkey wen.key -out wen.crt 回車後輸入之前生成key檔案時候的密碼 輸入密碼後,當前目錄就會生成一個crt檔案
5、修改Nginx配置檔案
cd /etc/nginx/conf.d #切換到Nginx配置檔案目錄 cp default.conf https.conf #複製一份預設的配置檔案並改名為https.conf vim https.conf server { listen 443; server_name localhost; ssl on; ssl_certificate /etc/nginx/ssl_key/wen.crt; ssl_certificate_key /etc/nginx/ssl_key/wen.key; index index.html index.htm #charset koi8-r; #access_log /var/log/nginx/host.access.log main; location / { root /opt/https; }
6、在 /opt/https 目錄下建立一個HTML檔案
vim /opt/https/ssl.html
<html>
<head>
<meta charset="utf-8">
<title>ssl_key</title>
</head>
<h1>歡迎來到Nginx(ssl_key)</h1>
</body>
</html>
7、關閉Nginx服務
nginx -s stop -c /etc/nginx/nginx.conf
遇到 Enter PEM pass phrase: 則輸入剛剛生成key時所設定的密碼
8、開啟Nginx服務
nginx -c /etc/nginx/nginx.conf
遇到 Enter PEM pass phrase: 則輸入剛剛生成key時所設定的密碼
9、檢視443埠是否開啟
netstat -luntp | grep 443
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 5731/nginx: master
10、在瀏覽器訪問: https://虛擬機器的ip/ssl.html