Nginx配置Https(詳細、完整)


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
image

如果出現 (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
上述操作執行完成以后,你的目錄下會出現objs文件夾,文件夾內存在nginx文件,如圖:

image

接下來使用新的nginx文件替換掉之前安裝目錄sbin下的nginx,注意這里的替換的時候可以先將之前的文件備份下,停掉nginx服務

./nginx -s stop #停止nginx服務 #替換之前的nginx

cp /usr/local/nginx-1.8.1/objs/nginx /usr/local/nginx/sbin/

成功之后,進入到nginx安裝目錄下,查看ssl時候成功
#注意這里是大寫的V,小寫的只顯示版本號
./nginx -V  
#可以看到這里出現了configure arguments: --with-http_ssl_module   證明已經安裝成功

image

提示:這里替換后在執行 -V命令如果提示權限不足,先給這個nginx文件提升下權限,通過指令修改,如下:

chmod 111 nginx

第二步:配置ssl證書

解壓縮下載好的證書(證書一般是pem或crt文件和key文件,這里名字可以隨便改)

將下載好的證書上上傳到服務器,我將證書放在了/usr/local/nginx/ssl文件夾

#在/usr/local/nginx目錄下創建ssl文件夾
cd /usr/local/nginx
mkdir ssl
image

第三步:進行nginx.conf配置

進入nginx.conf文件下

cd /usr/locla/nginx/conf
#修改nginx.conf文件
vim nginx.conf

打開之后文件內容如圖

image

可以將沒用的東西都刪除掉,刪除的時候注意,括號要對應起來。

然后進行配置:

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中導入證書

image

image

image

image

第五步:重啟nginx

ok,如果上述步驟都完成了,沒有問題,接下來只需要重啟nginx服務即可。

進入sbin目錄下,輸入

./nginx -s reload
./nginx -s stop
./nginx
無提示信息的話,就大功告成了。

image

image

ok,配置https到此就結束了,不足之處還望在評論區指出。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM