1. 程式人生 > >給網站配置免費的HTTS證書

給網站配置免費的HTTS證書

nginx https 證書

最近看到網上說 https 的網站 Google 會優先收錄,所以就抽時間記錄下配置博客的過程。

ACME

使用 LetEncrypt 證書作為博客的 https 實現方式。

acme.sh?實現了?acme?協議, 可以從 letsencrypt 生成免費的證書.

github https://github.com/Neilpang/acme.sh

主要步驟:

  1. 安裝?acme.sh
  2. 生成證書
  3. copy 證書到 nginx/apache 或者其他服務
  4. 更新證書
  5. 更新?acme.sh
  6. 測試 https

1. 安裝 acme.sh

安裝很簡單, 一個命令:

curl  https://get.acme.sh | sh

普通用戶和 root 用戶都可以安裝使用. 安裝過程進行了以下幾步:

  1. 把 acme.sh 安裝到你的?home?目錄下:
cd ~/.acme.sh/

並創建 一個 bashalias, 方便你的使用:?alias acme.sh=~/.acme.sh/acme.sh

2). 自動為你創建 cronjob, 每天 0:00 點自動檢測所有的證書, 如果快過期了, 需要更新, 則會自動更新證書.

2. 生成證書 並且完成驗證

acme.sh?實現了?acme?協議支持的所有驗證協議. 一般有兩種方式驗證: httpdns 驗證.

這是使用http 驗證

cd ~/.acme.sh/
yum install socat

如果你還沒有運行任何 web 服務,?80?端口是空閑的, 那麽?acme.sh?還能假裝自己是一個webserver, 臨時聽在80?端口, 完成驗證:

sh acme.sh  --issue -d www.souyunku.com   --standalone

3. copy/安裝 證書

前面證書生成以後, 接下來需要把證書 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

4. 更新證書

目前證書在 60 天以後會自動更新, 你無需任何操作. 今後有可能會縮短這個時間, 不過都是自動的, 你不用關心.

5. 更新 acme.sh

目前由於 acme 協議和 letsencrypt CA 都在頻繁的更新, 因此 acme.sh 也經常更新以保持同步.

升級 acme.sh 到最新版 :

acme.sh --upgrade

如果你不想手動升級, 可以開啟自動升級:

acme.sh  --upgrade  --auto-upgrade

之後, acme.sh 就會自動保持更新了.

你也可以隨時關閉自動更新:

acme.sh --upgrade  --auto-upgrade  0

6. 測試 https

啟動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證書服務頁面申請或上傳自有證書。

  • 內容 ( PEM格式 ) 對應證書內容 *.cre 後綴
  • 私鑰 ( PEM格式 ) 對應證書內容 *.key 後綴

最後點擊:強制 HTTPS 訪問

開啟後用戶的 HTTP 請求會強制跳轉到 HTTPS 協議進行訪問。

Contact

  • 作者:鵬磊
  • 出處:http://www.ymq.io/2018/06/08/certs-https
  • 版權歸作者所有,轉載請註明出處
  • Wechat:關註公眾號,"搜雲庫",專註於開發技術的研究與知識分享

技術分享圖片

給網站配置免費的HTTS證書