免費 https 證書(Lets Encrypt)申請與配置

原文:免費 Https 證書(Lets Encrypt)申請與配置

之前要申請免費的 https 證書操作步驟相當麻煩,今天看到有人在討論,就搜索了一下。發現現在申請步驟簡單多了。

1. 下載 certbot

$ git clone https://github.com/certbot/certbot$ cd certbot$ ./certbot-auto --help

解壓打開執行就會有相關提示

2. 生成免費證書

./certbot-auto certonly --webroot --agree-tos -v -t --email 郵箱地址 -w 網站根目錄 -d 網站域名./certbot-auto certonly --webroot --agree-tos -v -t --email keeliizhou@gmail.com -w /path/to/your/web/root -d note.crazy4code.com

注意這裡 默認會自動生成 /網站根目錄/.well-known/acme-challenge,然後 shell 腳本會對應的訪問 網站域名/.well-known/acme-challenge

如果返回正常就確認了你對這個網站的所有權,就能順利生成

3. 獲取證書

如果上面的步驟正常 shell 腳本會展示如下信息:

- Congratulations! Your certificate and chain have been saved at/etc/letsencrypt/live/網站域名/fullchain.pem...

4. 生成 dhparams

使用 openssl 工具生成 dhparams

openssl dhparam -out /etc/ssl/certs/dhparams.pem 2048

5. 配置 Nginx

打開 nginx server 配置文件加入如下設置:

listen 443ssl on;ssl_certificate /etc/letsencrypt/live/網站域名/fullchain.pem;ssl_certificate_key /etc/letsencrypt/live/網站域名/privkey.pem;ssl_dhparam /etc/ssl/certs/dhparams.pem;ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers HIGH:!aNULL:!MD5;

然後重啟 nginx 服務就可以了

6. 強制跳轉 https

https 默認是監聽 443 埠的,沒開啟 https 訪問的話一般默認是 80 埠。如果你確定網站 80 埠上的站點都支持 https 的話加入下面的配件可以自動重定向到 https

server { listen 80; server_name your.domain.com; return 301 https://$server_name$request_uri;}

推薦閱讀:

Let's Encrypt 使用教程,免費的SSL證書,讓你的網站擁抱 HTTPS
開啟全站HTTPS後 , 用 Firefox 打開提示此連接不受信任,如何徹底解決這個問題?
搭建基於 Nginx 的 Https 站點
如何防止用戶身份被偽造?
如何看待小米等聯合聲明:呼籲運營商嚴格打擊流量劫持?

TAG:Web开发 | HTTPS | HTTP |