使用 Let’s Encrypt 在 VPS 上為 Nginx 配置 SSL

之前我們有講過如何給網站開啟全站 SSL 現在我們就一起來看看如何在 vps 上給 Nginx 開啟 Let’s Encrypt 證書並且自動更新。

這篇文章中的內容較舊,關於 letsencrypt 的配置文章,我寫了一篇新的,或許你可以參考看看:letsencrypt 工具改名 certbot


設置環境

首先,我們要準備一下安裝環境,這次我使用的是 CentOS 6.7 最後,如果你使用的是 Ubuntu ,那可能某些路徑不同,但應該大同小異。首先我們準備需要的環境,這些內容你的vps有些已經內置,有些則需要更新,而有些則沒有安裝:

另外,你需要使用到 pip,如果你的vps並沒有預裝,請參照這篇文章來升級。

安裝

這裡我們假定你已經配置好了 Nginx ,現在我們來從 Github 克隆一份 Let’s Encrypt 包使用:

現在,我們來進入 Let’s Encrypt 的目錄執行一下 letsencrypt-汽車 好讓它自己完成初始化。

這裡你可能會遇到 的virtualenv : command 發現. 這個錯誤,那你就需要執行 果仁 安裝 的virtualenv 來安裝缺失的包,然後再進行初始化。

一旦初始化完成,我們就可以進行證書籤署了!

使用內置插件獲取證書

使用內置插件 WebRoot 獲取證書的好處是我們可以直接使用 Nginx 提供的 HTTP 服務而不需要關閉 Nginx 好臨時讓出 80 端口!

編輯 Nginx 配置文件 /USR/本地/nginx的/CONF/nginx的.CONF ,在裡邊相應位置插入如下內容:

修改後的配置文件應該類似這樣:

記住插入到 服務器 的大括號內部。

現在重啟 Nginx 即可: nginx的 -ŧ && 服務 nginx的 重新開始 ,如果報錯,說明你的配置文件並沒有改好。

接下來使用命令獲取證書,期間會要求你同意協議以及輸入一個郵箱,目的是將來用來升級和恢復密鑰:

值得一提的是,你需要root權限來執行。另外,你的域名必須直接指向你的 vps 地址,如果你用了什麼 DNS 加速之類的 CDN,需要取消掉才行,因為它們會隱藏你服務器的真實 IP。

成功完成後,你應該就可以在 /等等/letsencrypt/生活/您的域名 這個目錄裡找到你的證書了!

接下來執行如下命令來生成 迪菲-赫爾曼密鑰 以增強安全:

冗長的等待之後就是配置 Nginx 使用 SSL 了。

配置 Nginx 的 SSL

總之,在你 Nginx 網站配置目錄下找到對應網站的配置文件,你會發現它們都只有關於 80 端口的監聽,我們把它先改掉:

這樣讓 Nginx 遇到 HTTP 訪問時自動轉發給 HTTPS。

然後我們來添加 443 端口監聽,這個配置就在同一個文件最頂一行開始即可:

注意這裡要把 . 換為你的域名,然後把 root /USR/分享/nginx的/HTML; 這一行換為你的網站目錄。

現在,再次重啟你的 Nginx nginx的 -ŧ && 服務 nginx的 重新開始 然後嘗試用瀏覽器打開這個頁面來測試結果吧:HTTPS://www.ssllabs.com/ssltest/analyze.html?D = www.logcg.com

別急,還有續期

由於 Let’s Encrypt 是免費簽發的,為了安全,它只提供為期三個月的有效期——官方也鼓勵使用自動化配置來完成續期,總之,你可以使用 ./letsencrypt-汽車 更新 來手動完成續期,或者你也可以使用 Linux 自己的任務計劃功能。

如果你在執行這個命令的時候出現找不到命令的情況,就使用如下命令安裝它:

總之,在打開的文件中寫入如下內容:

添加的任務會在每週一凌晨三點半執行證書的更新操作,這樣可以保證你的證書永遠都是最新的。

本文由 落格博客 原創撰寫:落格博客 » 使用 Let’s Encrypt 在 VPS 上為 Nginx 配置 SSL

轉載請保留出處和原文鏈接:https://www.logcg.com/archives/1709.html

關於作者

R0uter

如非聲明,本人所著文章均為原創手打,轉載請註明本頁面鏈接和我的名字。

註釋

          1. 哈,謝啦~暫時用這個也還好了。我做了計劃任務每周自動檢查續期的,而且目前也沒有泛域名的需求,將來有的話再找你咯~XD

      1. 我也是standalone,不過暫時關閉下web服務器而已。
        如果使用CDN的話,其實我也不知道我那次是怎麼配置好的證書(服務器上也是用真實的證書而不是自簽)……
        剛才去cf測試了下,開Development Mode和Pause website都不可以呢

          1. 我以前用cf,後來節點被牆了一大片就不用了。後來cf和國內百度還是誰的合作了,然後國際版好像都不行了我就放棄了。反正現在我的速度夠快,就直接跑就好了

          2. cf國內和百度合作的,叫“百度雲加速”,你服務器在香港必然快啊~其實我在想,要不我解析回大陸也行的。因為我弄的me域名沒備案就解析到騰訊云了。。

發表評論

您的電子郵件地址不會被公開. 必填字段標 *