發表日期:2018-06 文章編輯:小燈 瀏覽次數:2619
最近看到網上說 https 的網站Google 會優先收錄,所以就抽時間記錄下配置博客的過程。
使用 LetEncrypt 證書作為博客的 https 實現方式。
acme.sh 實現了 acme 協議, 可以從 letsencrypt 生成免費的證書.
github https://github.com/Neilpang/acme.sh
主要步驟:
安裝很簡單, 一個命令:
curlhttps://get.acme.sh | sh 普通用戶和 root 用戶都可以安裝使用. 安裝過程進行了以下幾步:
cd ~/.acme.sh/ 并創建 一個 bash 的 alias, 方便你的使用: alias acme.sh=~/.acme.sh/acme.sh
2). 自動為你創建 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-upgrade0 啟動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 協議進行訪問。
