Nginx配置SSL證書


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

在我們下載的證書文件中有一個Nginx的文件夾,這里面的兩個文件都是需要的。我們需要把這個兩個文件上傳到 linux 服務器中,推薦放到/etc/ssl/目錄下

然后我們需要去找到nginx的配置文件。 

ps -ef | grep nginx

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

那么我們需要找到 nginx.conf文件並修改

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/”目錄下。

 

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
 

即可看到如下圖:

 

最后如果出現如上圖,則SSL模塊添加到Nginx的編譯好了,這次重新啟動則OK了。

 


免責聲明!

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



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