本站已經使用 Let’s Encrypt 的 SSL 加密了,也支援 HTTP2

之前介紹過 Let's Encrypt 免費 SSL ,日前已經開放公開測試,任何人都可申請 SSL 憑證了,有了免費 SSL 才是 HTTP2 協定推廣的最大助力,因為目前瀏覽器僅支援 HTTP2 在加密的環境,我大概講一下 Lets Encrypt 的優點。

  1. 不需要自己產生 key,不用線上申請,只需要在 Server 上有辦法跑起 letsencrypt 的程式就可以自動取得憑證
  2. 可以自我更新憑證,不用怕過期問題

雖然仍有其他的免費 SSL ,如 COMODO ,但設定方式就複雜,要產生 key 去網頁申請,過期了又要再來一次,就是不好管理。

除了依照官方手冊第一次申請憑證玩比較久,現在 EPEL Repo 已經有包進 letsencrypt 可直接用 yum,第一次玩有可能會碰到執行取得憑證時發生 Connection 問題之外,其他的部分都還好,自動更新憑證方式也很簡單,我筆記下來

以下是我以 CentOS 7 為例子,將以下 Code 寫在 cron 中,可以定時執行,我是設定一個月自動重新取得憑證一次,並且 reload httpd 就行了(這是 for Apache)

letsencrypt certonly --webroot -w /網站路徑 --renew-by-default -d 網域名稱
systemctl reload httpd

這種更新方式會於網站路徑產生一個名為 ".well-known" 的文件夾,猜測應該就是讓 letsencrypt 驗證用的,因此網站路徑必須要指定正確能夠從外面可以讀取到。

要注意,有時候我們為了加強源碼安全性,可能會限制 .* 的存取,如 .git .svn 等,我就遇過因為防止了 .* 也就是只要有點(.) 開頭的都拒絕,這會讓更新失敗,所以 Web Server 要開通 .well-known 可以讓外部存取,才有辦法以上述方式更新。

由於 Apache Web Server 要 2.4.17 才支援,而且目前 CentOS 沒人包 RPM,後來我改用官方包的 nginx 1.9.9 (1.9.5 之後支援 HTTP2) ,目前本站已經支援 http2 協定

pigo-https-http2

 

網站加密評等 A+ , hr rh

pigo-ssl-aplus

由於 CentOS 的 openssl 套件尚未升級至 1.0.2 版本,因此不支援 ALPN,所以我的環境 CentOS+nginx 的 HTTP2 走的是 NPN 的協定,看起來只有 Chrome 和 FireFox 能夠成功走 HTTP2,IE11 或 EDGE 只能走 HTTP/1.1。

發佈留言