Lets Encrypt 花三分鐘免費接入ssl證書

jopen 8年前發布 | 13K 次閱讀 SSL協議 Nginx Web服務器

很久很久以前我還在當個人站長的時候,就一直琢磨著給網站買個 ssl 證書,這樣用戶訪問的時候瀏覽器上的小綠鎖能給人一種非常安全的印象。然而導致我最終沒有上 https 的原因有:

  1. 證書好貴
  2. https 會影響 SEO(據說)
  3. 懶( 這才是真正的原因

直到前段時間發現了 Lets Encrypt 項目 ,一個倡導互聯網上所有網站都該使用 https 的組織,提供免費的 ssl 證書服務。

上圖是 GoDaddy 的 ssl 證書報價,換句話說,Lets Encrypt 免費送你價值 62.99 刀的證書。

當然,這里提到價格并不是為了讓大家薅羊毛,而是為了體現 Lets Encrypt 組織的高尚目標。希望看到本文的同學,能夠享受免費 ssl 證書帶來了安全和穩定,而不是產生牟利等不當想法。

使用的方法也很簡單,以 nginx 為例,直接使用 Github 上 xdtianyu 同學提供的 腳本 即可。

操作步驟

切換到你希望保存證書及私鑰的目錄,我選擇當前用戶的 home,即 ~ 。

下文中所有 /path/to/ 請替換成你服務器上的實際路徑; your_domain 同理替換成你自己的域名

下載腳本及配置文件

cd ~  
wget https://raw.githubusercontent.com/xdtianyu/scripts/master/lets-encrypt/letsencrypt.conf  
wget https://raw.githubusercontent.com/xdtianyu/scripts/master/lets-encrypt/letsencrypt.sh  
chmod +x letsencrypt.sh  

編輯配置文件,將第2、3、4行中的 Example.com 替換成你自己的域名

vim letsencrypt.conf  

執行 letsencrypt 腳本,獲取證書及私鑰

./letsencrypt.sh ./letsencrypt.conf

添加 nginx alias

server {  
  ...

  location /.well-known/ {
    alias /path/to/.well-known/;
  }

  ...
}

修改 nginx 配置,加載私鑰和證書

server {  
   listen 443 ssl;
   ssl_certificate /path/to/your_domain.chained.crt;
   ssl_certificate_key /path/to/your_domain.com.key;

   ...
}

全部操作完成后,重啟 nginx 即可。

service nginx restart  
#或 
/etc/init.d/nginx -s reload

額外配置

首先,Lets Encrypt 的證書需要每月更新,因此你需要一個 cron 命令定時運行上述腳本

0 0 1 * * ~/letsencrypt.sh ~/letsencrypt.conf >> /var/log/lets-encrypt.log 2>&1  

其次,如果你希望重定向所有的非 https 到 https 訪問,可以在 nginx 配置中添加如下 server block

server {  
    listen 80;
    server_name your_domain.com;
    return https://your_domain.com$request_uri;
}

總的來說,Lets Encrypt 所倡導免費及普遍的 ssl 證書有利于整個互聯網環境的安全化。對于某些靠流量劫持廣告的 ISP 來說,苦日子要來了。

來自: http://undefinedblog.com/lets-encrypt/

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!