天天看點

Nginx實戰案例之Nginx配置SSL證書往期文章

Nginx實戰案例之Nginx配置SSL證書往期文章

本文主要記錄Nginx怎麼配置SSL證書,前提是Nginx安裝成功和SSL證書已經擷取。

阿裡雲安全SSL證書免費申請

在我們下載下傳的證書檔案中有一個Nginx的檔案夾,這裡面的兩個檔案都是需要的。我們需要把這個兩個檔案上傳到 linux 伺服器中,推薦放到

/etc/ssl/

目錄下

Nginx實戰案例之Nginx配置SSL證書往期文章

然後我們需要去找到nginx的配置檔案。 

ps -ef | grep nginx           
Nginx實戰案例之Nginx配置SSL證書往期文章

可以看到 nginx的目錄是 /usr/local/nginx

那麼我們需要找到 nginx.conf檔案并修改

Nginx實戰案例之Nginx配置SSL證書往期文章
cd /usr/local/nginx/conf           
vim nginx.conf           

我們需要在 http 中去添加一個server節點,如下所示。如果你不習慣在linux中修改,把nginx.conf這個下載下傳到本地修改完成再上傳也是一樣的。

如果使用者使用的是http協定進行通路,那麼預設打開的端口是80端口,是以我們需要做一個重定向,我們在上一個代碼塊的基礎上增加一個server節點提供重定向服務。

http{
    #http節點中可以添加多個server節點
    server{
        #監聽443端口
        listen 443;
        #對應的域名,把baofeidyz.com改成你們自己的域名就可以了
        server_name baofeidyz.com;
        ssl on;
        #從騰訊雲擷取到的第一個檔案的全路徑
        ssl_certificate /etc/ssl/1_baofeidyz.com_bundle.crt;
        #從騰訊雲擷取到的第二個檔案的全路徑
        ssl_certificate_key /etc/ssl/2_baofeidyz.com.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;
        #這是我的首頁通路位址,因為使用的是靜态的html網頁,是以直接使用location就可以完成了。
        location / {
                #檔案夾
                root /usr/local/service/ROOT;
                #首頁檔案
                index index.html;
        }
    }
    server{
        listen 80;
        server_name baofeidyz.com;
        rewrite ^/(.*)$ https://baofeidyz.com:443/$1 permanent;
    }
}           

萬事俱備,隻欠重新開機。

/usr/local/nginx/sbin/nginx           

結果一重新開機,duang~出錯了。

nginx:[emerg]unknown directive ssl,就是這個錯誤提示

因為我們配置這個SSL證書需要引用到nginx的中SSL這子產品,然而我們一開始編譯的Nginx的時候并沒有把SSL子產品一起編譯進去,是以導緻這個錯誤的出現。

1:我們先來到當初下載下傳nginx的包壓縮的解壓目錄,如果你是看小編寫的教程安裝的,解壓目錄應該在“/data/”目錄下。

Nginx實戰案例之Nginx配置SSL證書往期文章

2:來到解壓目錄下後,按順序執行一下指令:

cd /data/nginx-1.10.1 //這個指令是進入下載下傳解壓的 nginx 檔案夾,看你的實際路徑

./configure --with-http_ssl_module           

  重新添加這個ssl子產品

  注: 執行以上一條指令出現這個錯誤(./configure:錯誤:SSL子產品需要OpenSSL庫。),原因是因為缺少了OpenSSL,那我們再來安裝一個即可執行:yum -y install openssl openssl-devel  等待OpenSSL的安裝完成後,再執行./configure

3:執行make指令,但是不要執行make install,因為make是用來編譯的,而make install是安裝,不然你整個nginx會重新覆寫的。

make           

4:在我們執行完做指令後,我們可以檢視到在nginx解壓目錄下,objs檔案夾中多了一個nginx的檔案,這個就是新版本的程式了。首先我們把之前的nginx先備份一下,然後把新的程式複制過去覆寫之前的即可。

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak //備份,備份則不用執行

cp objs/nginx /usr/local/nginx/sbin/nginx           

出現錯誤,删除掉/usr/local/nginx/sbin/下的 nginx 再複制過去即可

5:最後我們來到Nginx安裝目錄下,來檢視是否有安裝ssl子產品成功。執行

cd /usr/local/nginx/

./sbin/nginx -v           

即可看到如下圖:

Nginx實戰案例之Nginx配置SSL證書往期文章

最後如果出現如上圖,則SSL子產品添加到Nginx的編譯好了,這次重新啟動則OK了。

Nginx實戰案例之Nginx配置SSL證書往期文章

往期文章

Nginx系列教程(1)nginx基本介紹和安裝入門 Nginx系列教程(2)nginx搭建靜态資源web伺服器 Nginx系列教程(3)nginx緩存伺服器上的靜态檔案 Nginx系列教程(4)nginx處理web應用負載均衡問題以保證高并發 Nginx系列教程(5)如何保障nginx的高可用性(keepalived) Nginx系列教程(6)nginx location 比對規則詳細解說 Nginx系列教程 (7) nginx rewrite配置規則詳細說明 Nginx系列教程(8)nginx配置ssl證書實作網站https通路

繼續閱讀