配置HTTPS
現在做博客或者做網站沒有 https 已經不行了,就記錄一下我在騰訊雲配置 https 的過程吧,非常簡單,1個小時就可以了。
還涉及到 http 訪問自動轉發到 https 訪問路徑。同時把不帶 www 的頂級域名轉發到帶 www 的二級域名上,有利於 SEO.
申請證書
不管是騰訊雲還是阿里雲都提供免費的證書使用,不過有效期是 1 年,到時候我們重新申請就可以了。我們以騰訊雲為例子,申請證書。
然后驗證一下 DNS 記錄就好了,如果域名是在使用騰訊雲解析的話直接選用自動 DNS 驗證即可。
官方說法是申請證書需要10分鍾-1天的時間,我大概就是十幾分鍾吧,很快就收到通知了。下載的證書包含 Apache、Nginx、Tomcat、IIS等服務器的配置文件。我們把 Nginx 文件夾下的兩個文件傳到服務器就行了。
配置證書
我們在 etc/nginx/ 目錄下新建 ssl 文件夾來存放證書。把 crt 證書文件和 key 私鑰文件上傳到這里。然后就可以配置 Nginx 配置文件了。
我的配置文件放在 sites-enabled 文件夾里,我們刪掉默認的文件新建一個,具體配置內容可以參考騰訊雲的操作指導。
下面是我的配置文件
# 配置 http 訪問時通過 301 轉發到 https 上。
server{
listen 80;
server_name example.com www.example.com;
return 301 https://www.example.com$request_uri;
}
# 證書部分內容配置,注意證書路徑寫對,其他地方照抄就行了
server {
listen 443 ssl default_server;
server_name www.example.com;
ssl on;
ssl_certificate /etc/nginx/ssl/1_www.example.com_bundle.crt;
ssl_certificate_key /etc/nginx/ssl/2_www.example.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://127.0.0.1:8000;
}
}
# 這一步把 頂級域名轉發到 www 二級域名上,有利於 SEO
server {
listen 443 ssl;
server_name example.com;
return 301 https://www.example.com$request_uri;
}
第一個server 配置的是把普通 80 端口訪問的 http 協議轉發到 https 訪問。
第二個server 配置的就是證書路徑和一些參數,這個照抄就行了,只要把證書路徑寫對
第三個server 配置的是把不帶 www 的頂級域名轉發到帶 www 的二級域名,利於 SEO. 比如 example.com 會自動跳轉到 www.example.com 。