SSL證書申請,配置Nginx環境支持HTTPS訪問

關鍵詞

SSL ?HTTPS Nginx ?AMH面板

背景

在建站過程中遇到如下需求:需要網站支持HTTPS訪問,因此需要申請SSL證書,并且安裝使用

為什么需要HTTPS?

簡單來講,HTTP是明文傳輸的,也就意味著,介于發送端、接收端中間的任意節點都可以知道你們傳輸的內容是什么。這些節點可能是路由器、代理等。相對來說安全性較低。常見的運營商劫持就是利用了HTTP協議傳輸中的不足。

HTTPS則擁有更高的安全性,是以安全為目標的HTTP通道,簡單講是HTTP的安全版。之前HTTPS在金融購物網站使用比較多,但是現在隨著用戶愈發重視網絡安全,很多平臺開始轉向使用HTTPS。目前Google,Apple,Facebook等已經完全支持HTTPS,甚至支持HTTP 2.0。

如何申請SSL證書?

國內很多渠道可以獲取免費的SSL證書,比較主流的有騰訊云,阿里云,BAE(百度開放云),我因為域名和服務器大多都在阿里云(且比較窮),所以選擇了阿里云的免費SSL證書服務。

申請地址:點我

按照截圖對應樣式選擇免費型

每個阿里云賬號可以申請可以申請10個免費SSL證書,每個證書對應一個域名。

申請完成后填寫相關信息,一般十分鐘左右即可完整證書簽發,注意填寫信息的時候盡量填寫真實信息,否則可能會影響審核。

已簽發證書

證書簽發之后,點擊相應證書后的“下載”,即可進入下載頁,選擇對應主機環境,下載所需的證書文件,還需安裝,安裝完成即可實現HTTPS訪問。

環境配置說明:

因為當時自己安裝Nginx+PHP+MySQL環境的時候數據庫密碼遇到一些問題,為了方便,直接使用了AMH面板。

環境如下:Nginx+PHP+MySQL,配合AMH面板

證書安裝

阿里云官方提供了各環境配置下的證書安裝說明,上傳證書文件至Nginx安裝文件根目錄,然后修改nginx.conf配置文件即可。

一般Nginx配置文件位于usr/local/nginx/conf文件夾下,但是因為我是用的是amh面板,nginx.conf文件include了單獨的主機配置文件

nginx.conf文件

比如我的是/home/wwwroot/lnmp_movie/vhost/*.conf,直接進入這個目錄修改即可。

官方提供的修改配置如下:

紅框中的對應內容需要修改為你網站的根目錄

ssl_certificate和ssl_certificate_key對應的地址是可以更換的,示具體上傳的地址而定。

使用阿里云官方提供的配置,修改完配置文件,重啟Nginx之后,使用HTTPS鏈接已經可以訪問,但是如果不使用HTTPS而使用HTTP訪問,出現了一個報錯。

The plain HTTP request was sent to HTTPS port

網上查找之后有很多種解決辦法,其中幾種試了之后并不能解決問題,后來我試著修改了一下ssl on代碼,配置改成如下,重啟Nginx之后HTTP訪問已經不再報錯(具體原理我也講不清

整體修改后的配置如下,比較重要的地方已經使用紅框標注,其他配置文件與ssl無關。

修改后的配置文件

說明

因為我只需實現HTTPS鏈接可訪問即可,不需要全站均使用HTTPS,所以配置到這里就夠了。若還需配置全站必須使用HTTPS,網上有很多教程可供參考。

測試

http://www.laotie.tv/

https://www.laotie.tv/

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容