Nginx配置Https(詳細、完整)
前置條件:
在配置https之前請確保下面的步驟已經完成
1、服務器已經安裝nginx並且通過http可以正常訪問。
2、不會安裝nginx的可以參考下這篇文章:https://www.cnblogs.com/haolb123/p/15029817.html
3、擁有ssl證書,沒有的可以去阿里購買或者免費申請一年,或者使用息簽發證書。
如果以上條件都滿足了,接下來開始配置https
第一步:Nginx的ssl模塊安裝
在配置ssl證書之前,要確保你的nginx已經安裝了ssl模塊,一般情況下自己安裝的nginx都是不存在ssl模塊的。
這里先檢查下自己是否存在ssl模塊:
進入到你的nginx安裝目錄下面,我的目錄是在(/usr/local/nginx),如果你的nginx安裝步驟和上面的文章一致的話,那你的目錄和我應該是一致的
進入到目錄的sbin目錄下,輸入
#注意這里是大寫的V,小寫的只顯示版本號
./nginx -V
如果出現 (configure arguments: --with-http_ssl_module), 則已安裝(下面的步驟可以跳過)。
一般情況下都是不存在ssl模塊的,接下來進入到你的解壓縮后的nginx目錄,注意這里不是nginx安裝目錄,是解壓縮后的目錄,我的是在(/usr/local/nginx-1.8.1),進入目錄后,輸入
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make
#切記不要執行make install,否則會重新安裝nginx
接下來使用新的nginx文件替換掉之前安裝目錄sbin下的nginx,注意這里的替換的時候可以先將之前的文件備份下,停掉nginx服務
./nginx -s stop #停止nginx服務 #替換之前的nginx
cp /usr/local/nginx-1.8.1/objs/nginx /usr/local/nginx/sbin/
#注意這里是大寫的V,小寫的只顯示版本號 ./nginx -V #可以看到這里出現了configure arguments: --with-http_ssl_module 證明已經安裝成功
提示:這里替換后在執行 -V命令如果提示權限不足,先給這個nginx文件提升下權限,通過指令修改,如下:
chmod 111 nginx
第二步:配置ssl證書
解壓縮下載好的證書(證書一般是pem或crt文件和key文件,這里名字可以隨便改)
將下載好的證書上上傳到服務器,我將證書放在了/usr/local/nginx/ssl文件夾
#在/usr/local/nginx目錄下創建ssl文件夾 cd /usr/local/nginx mkdir ssl
第三步:進行nginx.conf配置
進入nginx.conf文件下
cd /usr/locla/nginx/conf
#修改nginx.conf文件
vim nginx.conf
打開之后文件內容如圖
可以將沒用的東西都刪除掉,刪除的時候注意,括號要對應起來。
然后進行配置:
http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { #監聽443端口 listen 443; #你的域名 server_name huiblog.top; ssl on; #ssl證書的pem文件路徑 ssl_certificate /usr/local/nginx/ssl/nginx122.crt; #ssl證書的key文件路徑 ssl_certificate_key /usr/local/nginx/ssl/private122.key; location / { proxy_pass http://公網地址:項目端口號; } } server { listen 80; server_name huiblog.top; #將請求轉成https rewrite ^(.*)$ https://$host$1 permanent; } }
注意:這里需要在安全組中開放443端口。
第四步:在Windows中導入證書
第五步:重啟nginx
ok,如果上述步驟都完成了,沒有問題,接下來只需要重啟nginx服務即可。
進入sbin目錄下,輸入
./nginx -s reload ./nginx -s stop ./nginx
ok,配置https到此就結束了,不足之處還望在評論區指出。









