最近看到網上說 https
的網站 Google
會優先收錄,因此就抽時間記錄下配置博客的過程。nginx
使用 LetEncrypt
證書做爲博客的 https
實現方式。git
acme.sh 實現了 acme
協議, 能夠從 letsencrypt
生成免費的證書.github
github https://github.com/Neilpang/acme.shweb
主要步驟:apache
安裝很簡單, 一個命令:vim
curl https://get.acme.sh | sh
普通用戶和 root 用戶均可以安裝使用. 安裝過程進行了如下幾步:瀏覽器
把 acme.sh 安裝到你的 home 目錄下:bash
cd ~/.acme.sh/
並建立 一個 bash
的 alias
, 方便你的使用: alias acme.sh=~/.acme.sh/acme.sh
curl
自動爲你建立 cronjob
, 天天 0:00 點自動檢測全部的證書, 若是快過時了, 須要更新, 則會自動更新證書.測試
acme.sh
實現了 acme
協議支持的全部驗證協議. 通常有兩種方式驗證: http
和 dns
驗證.
這是使用http
驗證
cd ~/.acme.sh/ yum install socat
若是你尚未運行任何 web
服務, 80
端口是空閒的, 那麼 acme.sh
還能僞裝本身是一個webserver
, 臨時聽在80
端口, 完成驗證:
sh acme.sh --issue -d www.souyunku.com --standalone
前面證書生成之後, 接下來須要把證書 copy
到真正須要用它的地方.
注意, 默認生成的證書都放在安裝目錄下: ~/.acme.sh/
, 請不要直接使用此目錄下的文件, 例如: 不要直接讓 nginx/apache
的配置文件使用這下面的文件. 這裏面的文件都是內部使用, 並且目錄結構可能會變化.
mkdir -p /certs cd /root/.acme.sh/www.souyunku.com cp www.souyunku.com.cer /certs cp www.souyunku.com.key /certs
配置Nginx
vim /usr/local/nginx/conf/nginx.conf
配置證書
server { listen 443; ssl on; ssl_certificate /certs/www.souyunku.com.cer; ssl_certificate_key /certs/www.souyunku.com.key; }
把http
重定向到https
server { listen 80; server_name www.souyunku.com; rewrite ^(.*) https://$server_name$1 permanent; }
每次修改nginx配置文件後都要進行檢查
/usr/local/nginx/sbin/nginx -t
目前證書在 60 天之後會自動更新, 你無需任何操做. 從此有可能會縮短這個時間, 不過都是自動的, 你不用關心.
目前因爲 acme 協議和 letsencrypt CA 都在頻繁的更新, 所以 acme.sh 也常常更新以保持同步.
升級 acme.sh 到最新版 :
acme.sh --upgrade
若是你不想手動升級, 能夠開啓自動升級:
acme.sh --upgrade --auto-upgrade
以後, acme.sh 就會自動保持更新了.
你也能夠隨時關閉自動更新:
acme.sh --upgrade --auto-upgrade 0
啓動Nginx
/usr/local/nginx/sbin/nginx
瀏覽器 訪問 www.souyunku.com 會自動跳轉到 https://www.souyunku.com
最後說一點,因爲博客使用了七牛雲的 http
協議的 cdn
致使博客內的靜態資源不可用,最後又把七牛雲的靜態資源配置了 https
配置步驟
點擊菜單:融合CDN-->域名管理-->配置--> HTTPS 配置
點擊 SSL證書管理 - https://portal.qiniu.com/certificate/ssl#cert,您能夠在SSL證書服務頁面申請或上傳自有證書。
最後點擊:強制 HTTPS 訪問
開啓後用戶的 HTTP 請求會強制跳轉到 HTTPS 協議進行訪問。