ゆるTLSアドベントカレンダー 8日目:Let's Encryptとルート証明書と秘密鍵

この記事は ゆるTLS Advent Calendar 2021 の8日目の記事です(12日遅れorz)。

 

7日目は認証局の話をしたので、無料で利用できる認証局Let's Encryptの話を。

 

 

[SSL証明書の費用]

SSL証明書認証局から取得する場合、有料のものと無料のものがある。サポートがある有料の証明書だと、1年間の証明書で最安でも数万円かかる。

個人利用の場合は無料の方がありがたい。

 

パブリッククラウドSSL/TLS証明書する場合、AWSGCPではそれぞれ無料で利用できる認証局がある*1

aws.amazon.com

pki.goog

 

無料で証明書を取得する場合、2015年頃に登場したLet's Encryptが有名である*2*3

letsencrypt.org

『プロフェッショナルSSL/TLS』71ページでは、無償のLet's Encryptの登場によって証明書の低価格化に拍車がかかったと説明されている。

 

[ルート証明書期限切れ(2021年9月30日)]

そのLet's Encryptは、2021年にルート証明書の期限切れで話題となった。

早いところではさくらインターネットのように2020年8月に警告を出しているところもあったが、私が気づいたのは2021年9月の期限切れ直前であったorz

ssl.sakura.ad.jp


 

気づいたきっかけはこちらのツイート。

 

リンクされていたOpenSSLのサイトの記事を見て、なんとなく『プロフェッショナルSSL/TLS』69ページあたりで触れられていた相互認証証明書の話だとは理解できた。

www.openssl.org

 

ただ、相互認証のやり方が思ってたよりも複雑だった。新しいISRG Root X1のルート証明書の証明書チェーンへ、古いDST Root X3のルート証明書から2系統の相互認証がされていたらしい。

その辺りの事情はこちらの記事に詳しい。

qiita.com

 

ルート証明書の期限が切れただけで話が終わりかと思いきや、秘密鍵が破棄されずに、秘密鍵で署名された新たなCRL(証明書失効リスト)が発行され続けているらしい。いいのかしら...。

zenn.dev

 

ちなみに、同様のコマンドを実行すると、2021年12月8日(日本時間12月9日)に更新されたCRLが取得できた。次回更新は2022年1月7日(日本時間1月8日)だそうで......。

いつまで続くんだろう?

$ openssl crl -in DSTROOTCAX3CRL.crl -inform DER -noout -text
Certificate Revocation List (CRL):
        Version 2 (0x1)
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: /O=Digital Signature Trust Co./CN=DST Root CA X3
        Last Update: Dec  8 20:44:48 2021 GMT
        Next Update: Jan  7 20:44:48 2022 GMT
        CRL extensions:
            X509v3 Authority Key Identifier: 
                keyid:C4:A7:B1:A4:7B:2C:71:FA:DB:E1:4B:90:75:FF:C4:15:60:85:89:10

            X509v3 CRL Number: 
                235
Revoked Certificates:
    Serial Number: 0A014142000001415C7FF11500000002
        Revocation Date: Sep 16 16:49:21 2015 GMT
        CRL entry extensions:
            X509v3 CRL Reason Code: 
                Cessation Of Operation
    Serial Number: 0A01414200000148ADA40EF900000002
        Revocation Date: Nov 13 17:20:16 2019 GMT
        CRL entry extensions:
            X509v3 CRL Reason Code: 
                Superseded
(略)
    Signature Algorithm: sha256WithRSAEncryption
         2e:77:e3:dd:8e:51:ee:ee:8d:a4:db:35:ab:b9:c4:1f:fa:e6:
         39:5a:32:76:5d:7b:7a:45:af:9e:c5:53:f8:ae:67:1e:f0:4f:
(略)

 

[まとめ]

*1:Azureでも同様の証明書管理サービスがあるが、認証局としてはDigiCertになるようだ。

docs.microsoft.com

*2:他にも2016年に登場したZeroSSLがある。

zerossl.com

zenn.dev

*3:以下の記事によると、2015年当時は他にWoSignやStartCOMが無料証明書を提供していた。両社は2016年に運用上の問題を起こしてルート証明書が排除された。参考:『プロフェッショナルSSL/TLS』108-109ページ

tech.jstream.jp