本文主要記錄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/」目錄下。
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了。
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訪問