Let's Encrypt 的官方版本 Client 將會改名

Let's Encrypt 的官方 Client 決定改名,不過目前還沒有公佈新的名字:「New Name, New Home for the Let's Encrypt Client」。

主要是兩個原因,第一個是避免商標問題:

[...] we want the client to be distributable and customisable without having to create a complex process for deciding whether customized variants are appropriate for use with Let’s Encrypt trademarks.

另外一個是希望之後有其他的 CA 也可以用:

Another reason is that we want it to be clear that the client can work with any ACME-enabled CA in the future, not just Let’s Encrypt.

把 Let's Encrypt 的說明放到 letsencrypt.tw 了

我寫了一份 Let's Encrypt 的說明 (以 letsencrypt.sh 為主),包括下載、安裝、server 設定、設定與 auto-renew。另外我也把為什麼這樣設計的想法寫在文章的後半部,這主要是在摸索自動化設定時想出來的,也許可以幫到一些人。

先前註冊了 letsencrypt.tw,也就拿來用了。

整個網站以 CC0 授權放出,希望能藉此推廣台灣使用 HTTPS。

也因此希望大家多分享到其他社群網站,讓更多人可以知道這個好用的 CA 與工具。

如果有任何建議,也歡迎在這篇文章下面留言。

Let's Encrypt 對整個 SSL Certificate 的影響

Let's Encrypt 的人試著從多個資料來源分析 Let's Encrypt 對整個網路上安全性的影響力:「Early Impacts of Let's Encrypt」。

資料來源包括 Certificate Transparency (CT) 記錄與 censys (這個網站用 StartSSL,被我屏蔽掉了 XD)。

But I do have access to Certificate Transparency logs, as well as other data sources like Censys.io.

前者 CT 的部份會有嚴重的偏差,因為 CA/Browser Forum 只規定 EV certificate 要送 CT log,一般的 SSL certificate 可以不送 (幾乎都沒送),而 Let's Encrypt 發的是一般的 SSL certificate,還是有送 CT log。

把資料送上 CT 是好事,但這使得 CT log 內的資料會有嚴重偏差,拿這個判斷影響力是很有問題的。

所以這份資料就是看看就好...

用 Shell Script 寫的 Let's Encrypt Client

在找 Let's Encrypt 安裝方法時找到的專案:「letsencrypt/acme client implemented as a shell-script」。

整個專案用 bash 寫,用到的 dependency 都非常基本,「比較特別的」只有 curlopenssl,這兩個套件應該不是什麼問題... XD

沒有安裝問題 (因為只有一個 shell script 檔案),用起來也很簡單,執行速度也比官方快多了 (畢竟官方的考慮比較多),之後應該就會用這個吧... 另外自動化的部份也應該會用這個解決 :o

Let's Encrypt 進入 Public Beta 開放給大眾使用

Let's Encrypt 進入 Public Beta,這代表不再需要提出申請才能用了:「Entering Public Beta」。

We’re happy to announce that Let’s Encrypt has entered Public Beta. Invitations are no longer needed in order to get free certificates from Let’s Encrypt.

話說翻資料的時候翻到 Namecheap 對 Let's Encrypt 作出反擊,只能說吃樣很難看:「SSL from Namecheap - What's the difference: Encryption, Validation & Trust」。

人們選擇 Namecheap 的 SSL certificate 不是因為他好,而是因為他便宜,加上這家公司不像 GoDaddy 那樣邪惡。

現在有免費的 SSL certificate 出來競爭 (於是根本打不贏) 就放 FUD 攻擊,吃相極為難看。有人針對 Namecheap 的文章駁斥了裡面大量錯誤的論點:「Comment on Namecheap's SSL」。

接下來應該可以弄不少來玩,來整理文章把申請與自動 renew 的步驟做出來...

Let's Encrypt 預定於 2015 年 12 月 3 日進入 Public Beta

Let's Encrypt 宣佈 2015/12/03 進入 Public Beta,也就是不需要額外填寫表格申請就可以使用:「Public Beta: December 3, 2015」。

從 2015/09/19 開始到現在已經發出 11K 個 SSL certificate 了:

Our Limited Beta started on September 12, 2015. We’ve issued over 11,000 certificates since then, and this operational experience has given us confidence that our systems are ready for an open Public Beta.

我猜應該還是在 cross sign 取得主流瀏覽器支援後才大量增加的...

blog.gslin.org 的 SSL certificate 也換成 Let's Encrypt

剛剛把 blog.gslin.org 也換成 Let's Encrypt 的 SSL certificate 了:

由於使用了 nginx + redirect,目前 letsencrypt-auto 沒辦法支援這樣的 case,所以認證的過程是把 nginx 關掉,讓 letsencrypt-auto 使用 standalone web server 認證,接下來再用

看起來沒什麼問題,是 90 days 有效,接下來要研究怎麼 auto renew...

把家裡的機器換上 Let's Encrypt 的 SSL certificate

依照「Beta Program Announcements」這邊的指示去填單申請 Let's Encrypt 的 SSL certificate (先幫 home.gslin.org 申請),等了好幾天,在剛剛收到信就弄了弄,還蠻順利就設好了。

可以看到 Let's Encrypt Authority X1DST Root CA X3 簽名的情況,而後者已經被大多數瀏覽器所確認了:

首先是先把 letsencrypt client 拉下來:

$ git clone https://github.com/letsencrypt/letsencrypt

接著執行認證:

$ cd letsencrypt
$ ./letsencrypt-auto --agree-dev-preview --server https://acme-v01.api.letsencrypt.org/directory certonly

執行時會先建立環境 (由於需要寫到 /etc/letsencrypt 裡面,會需要 root 或 sudo 權限)。

接下來會跳出一些畫面讓你設定,包括 hostname 以及聯絡資訊,再來就是認證的方式 (我是跳出使用 apache 或是 standalone web server),由於我的 port 443 已經被 apache 吃掉,所以需要用 apache。

最後認證成功會出現:

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/home.gslin.org/fullchain.pem. Your cert will
   expire on 2016-02-02. To obtain a new version of the certificate in
   the future, simply run Let's Encrypt again.

有效期限 90 days,雖然裡面是講 fullchain.pem,但其實每個檔案都有拆開放,看一下 /etc/letsencrypt/live/home.gslin.org/ 路徑裡的檔案,設定對應的 cert/chain/key 應該還是比較習慣的作法。

官方目前的建議是 60 days 重新 renew 一次,也許可以設成 cron,每兩個月自動更新一次 (並且 reload apache)。

Let's Encrypt 的 Limited Beta

Let's Encrypt 在拿到 IdenTrust 提供的 cross sign (參考「Let's Encrypt 正式出發」) 後所啟動的計畫:「Beta Program Announcements」。

要先透過 Google Forms 填單等待,等通過後要指定 production server 才會發出來。

要注意的是,Let's Encrypt 發出來的 SSL certificate 會比較短,只有 90 天有效,設計上是依靠自動機制在更新,所以理論上不會有問題:

Certificates from Let's Encrypt are valid for 90 days. We recommend renewing them every 60 days to provide a nice margin of error. As a beta participant, you should be prepared to manually renew your certificates at that time. As we get closer to General Availability, we hope to have automatic renewal tested and working on more platforms, but for now, please play it safe and keep track.

再來是有註冊限制,分成 Registrations/IP address 與 Certificates/Domain 兩個限制:

There are two rate limits in play: Registrations/IP address, and Certificates/Domain.

前者的限制是每天 10 次:

Registrations/IP address limits the number of registrations you can make in a given day; currently 10. This means you should avoid deleting the /etc/letsencrypt/accounts folder, or you may not be able to re-register.

後者的限制是每個 domain 只給 4 個 certificate:

Certificates/Domain you could run into through repeated re-issuance. This limit measures certificates issued for a given combination of Top Level Domain + Domain. This means if you issue certificates for the following domains, at the end you would have what we consider 4 certificates for the domain example.com.

拿來測試應該是夠用。

Let's Encrypt 的新進展

Let's Encrypt 宣佈有新的進度了,已經可以從 Root Certificate 簽其他的 SSL Certificate 了:「Our First Certificate Is Now Live」。

測試的網站在 https://helloworld.letsencrypt.org/ 這邊,目前應該還是屬於不信任狀態。一旦 cross sign 或是被加到瀏覽器內,這個網站應該就會馬上生效了。

接下來會同時做幾件事情:

總算又聽到新的進度了...