快速使用Let's Encrypt開啓我的網站的https

背景

爲何要使用https?nginx

  • https能夠有效避免無良運營商的DNS劫持,能夠顯著提高網站逼格。
  • 使用https已是大勢所趨,人心所向,iOS甚至強制要求開發者使用https。

爲何要使用Let's Encrypt?算法

  • 而對於我的開發者而言,https證書太貴,通常都好幾千一年。
  • Let's Encrypt免費開源無疑是一個不錯的選擇。

本文將記錄藍眼博客 (https://blog.eyeblue.cn) 搭建https的整個過程。網上有不少使用let's encrypt代碼生成證書,或者使用Certbot來生成證書,可是筆者以爲都沒有直接藉助 https://freessl.org/ 來生成證書方便快捷。瀏覽器

獲取證書

1.填寫域名

打開網站 https://freessl.org/ 填寫本身的域名,你將看到下圖。這裏咱們填入 blog.eyeblue.cn,同時在下方勾選 Let's Encrypt,而後點擊**「建立免費的SSL證書」**按鈕便可安全

1.png

2.填寫郵箱,選擇證書類型,驗證類型和CSR生成方式
  • 填寫本身的郵箱bash

  • 證書品牌只能選擇Let's Encrypt服務器

  • 證書類型選擇ECC。這裏主要是選擇數字簽名的算法,對於普通用戶使用默認的ECC便可。若是須要根據本身的具體情境來選擇,通常有如下選擇依據:分佈式

(1) RSA簽名算法適合於:Verify操做頻度高,而Sign操做頻度低的應用場景。好比,分佈式系統中基於capability的訪問控制就是這樣的一種場景。 (2) ECDSA簽名算法適合於:Sign和Verify操做頻度至關的應用場景。好比,點對點的安全信道創建。網站

  • 驗證類型使用DNS的方式。

其實驗證類型用來肯定你是不是這個域名的全部者,確認的方式有兩種: 1.DNS。 CA(Certificate Authority 數字證書認證機構)將經過查詢 DNS 的 TXT 記錄來肯定您對該域名的全部權,所以須要在域名管理平臺將生成的 TXT 記錄名與記錄值添加到該域名下。 2.文件。CA 將經過訪問特定 URL 地址來驗證您是否有改域名的全部權。所以,您須要下載給頂的驗證文件,並上傳到您的服務器。阿里雲

  • CSR生成選擇瀏覽器生成。通常的瀏覽器都支持Web Cryptography,直接使用默認的瀏覽器生成最方便。

下圖即是個人填寫,填好以後點擊**「點擊生成」**按鈕。 spa

2.png

3.進行DNS驗證

3.1 在第2步中點擊按鈕後,會彈出下圖內容:

3.png
3.2 這時只須要去域名解析控制檯添加一條TXT的解析記錄便可。個人域名在阿里雲,所以解析詳情以下圖所示:
3-1.png
完成解析後,點擊3.1中的**「點擊驗證」**按鈕

4.下載證書

在點擊第3步的按鈕後,會彈出證書文件下載的按鈕,此時點擊**「下載證書」**便可得到證書文件full_chain.pem和私鑰文件private.key

4.png

配置nginx

nginx的配置以下:

server{
		# 監聽443端口
        listen 443 ssl;
		# 域名,若是有多個空格隔開
        server_name blog.eyeblue.cn;

		# 啓用ssl
        ssl on;
		# 證書文件的放置路徑。證書文件即經過上文《獲取證書》的方式得到。
        ssl_certificate /data/security/letsencrypt/blogeyebluecn/full_chain.pem;
        # 私鑰文件的放置路徑。
        ssl_certificate_key /data/security/letsencrypt/blogeyebluecn/private.key;

		# 藍眼博客的服務運行在端口6020
        location / {
                proxy_pass http://127.0.0.1:6020;
                proxy_set_header host $host;
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_pass_request_headers      on;
                client_max_body_size  8m;
        }

}

#對於經過http來訪問藍眼博客的請求,咱們默認讓其跳轉到https. 這樣保持了http訪問的兼容性。
server {
        listen      80;
        server_name    blog.eyeblue.cn;
        rewrite ^(.*)$ https://blog.eyeblue.cn$1 permanent;
}

複製代碼

修改了配置文件後記得

service nginx restart
複製代碼

驗證

打開網頁https://blog.eyeblue.cn,便可看到地址欄中綠色的小鎖,證實https已經成功開啓。即時你輸入http://blog.eyeblue.cn也會自動轉跳到https下的,如此便保證了兼容性。

5.png

維護

Let's Encrypt證書的有效期只有三個月,這就須要咱們每隔一段時間就去更新一下證書,好在https://freessl.org/能夠幫咱們管理證書,註冊登陸以後即可以看到咱們的證書管理界面以下:

6.png

參考文章

Nginx如何配置證書

RSA與ECC的選擇

原文發表於藍眼博客:https://blog.eyeblue.cn/home/article/9f580b3f-5679-4a9d-be6f-4d9f0dd417af

相關文章
相關標籤/搜索