Nginx配置Https(詳細、完整)


前置條件:

在配置https之前請確保下面的步驟已經完成

  1. 服務器已經安裝nginx並且通過http可以正常訪問

    不會安裝nginx的可以參考下這篇文章:Linux安裝nginx(超詳細)

  2. 擁有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安裝目錄,是解壓縮后的目錄,我的是在(/root/nginx),進入目錄后,輸入

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

接下來執行

make
#切記不要執行make install,否則會重新安裝nginx

上述操作執行完成以后,你的目錄下會出現objs文件夾,文件夾內存在nginx文件,如圖:

 

 

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

./nginx -s stop #停止nginx服務

#替換之前的nginx
cp /root/nginx/objs/nginx /usr/local/nginx/sbin

成功之后,進入到nginx安裝目錄下,查看ssl時候成功

#注意這里是大寫的V,小寫的只顯示版本號
./nginx -V  
#可以看到這里出現了configure arguments: --with-http_ssl_module   證明已經安裝成功

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

 

 

 我是用的是finalshell連接工具,直接右鍵就可以修改權限了,當然,也可以通過指令修改,如下:

chmod 111 nginx

第二步:配置ssl證書

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

將下載好的證書上上傳到服務器,我將證書放在了root目錄下的card文件夾

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

將下載好的證書上上傳到服務器,我將證書放在了root目錄下的card文件夾

 

 

 

第三步:進行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  /root/card/huiblog.top.pem;
    #ssl證書的key文件路徑
    ssl_certificate_key /root/card/huiblog.top.key;
    location / {
     proxy_pass  http://公網地址:項目端口號;
    }
}
server {
    listen 80;
    server_name huiblog.top;
    #將請求轉成https
    rewrite ^(.*)$ https://$host$1 permanent;
}
}

注意:這里需要在安全組中開放443端口。

第四步:重啟nginx

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

進入sbin目錄下,輸入

./nginx -s reload 
./nginx -s stop
./nginx

無提示信息的話,就大功告成了。

 

 

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


免責聲明!

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



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