怎麼將網站從 HTTP 協議免費升級到 HTTPS

HTTPS 解決方案:我個人最推薦的就是Let's Encrypt ,Let's Encrypt 是一個免費、簡單、自動化、安全可靠的 HTTPS 解決方案。下面我們來介紹如何在服務器安裝 SSL 證書,

安裝 SSL 證書

1.首先訪問 https://certbot.eff.org/ 選擇自己的軟件環境:

看到操作指南:

$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository universe
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install certbot python-certbot-nginx

安裝過程中,該直接回車回車,該選Yes輸入Y回車。安裝完成後,執行如下命令:

sudo certbot --nginx

執行這個命令時,Certbot 會先讓你輸入郵箱和同意協議,同意之後會自動檢測 nginx.conf 下面的配置,把所有站點配置都列出來並讓你選擇哪個域名開啓 HTTPS(輸入列表編號,多個用空格分開):

2.輸入編號後回車,我這裏只有一個域名,輸入1回車,Certbot 就會爲你下載證書並更新對應的站點配置信息了。然後,還會讓你選擇是否在通過 HTTP 協議訪問應用時強制重定向到 HTTPS,1 表示不重定向,2 表示重定向,我選擇了重定向:

我的文章服務器是nginx:重啓是 運行 service nginx reload 重啓 Nginx,

或者配置完, nginx -s reload 重啓即可

自動更新證書

由於 Let's Encrypt 默認的有效期是 90 天,所以如果你的應用需要在生產環境長期提供服務,還要在證書到期之後更新證書,我們可以通過 certbot renew 命令來更新證書,你可以通過如下命令來測試該命令是否生效:

sudo certbot renew --dry-run

可以使用定時任務,每個月定時更新

0 0 1 * * certbot renew
5 0 1 * * service nginx restart