Nginx實戰案例之Nginx配置SSL證書

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

阿里雲安全SSL證書免費申請+ 騰訊雲安全SSL證書免費申請

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

而後咱們須要去找到nginx的配置文件。 java

ps -ef | grep nginx

能夠看到 nginx的目錄是 /usr/local/nginxlinux

那麼咱們須要找到 nginx.conf文件並修改nginx

cd /usr/local/nginx/conf
vim nginx.conf

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

若是用戶使用的是http協議進行訪問,那麼默認打開的端口是80端口,因此咱們須要作一個重定向,咱們在上一個代碼塊的基礎上增長一個server節點提供重定向服務。vim

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

1243133-20190723151201512-1886195869_1_.png

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

便可看到以下圖:

1243133-20190723152931879-238022867_1_.png

最後若是出現如上圖,則SSL模塊添加到Nginx的編譯好了,此次從新啓動則OK了。

1243133-20190723153725391-161186361_1_.png

往期文章

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訪問

相關文章
相關標籤/搜索