Ubuntu 26.10に同梱されるcurlに、証明書失効チェック機能が組み込まれました。この機能は、rustlsの開発者が手がけるプロジェクト「upki」によるものです。Ubuntuの開発者は両リリースで同じcurlコマンドを実行しました。Ubuntu 26.04では失効した証明書を受け入れて接続できたのに対し、26.10では接続が拒否されました。

認証局は、有効期限が切れる前に信頼を取り消すべき証明書を失効させます。OpenSSLは既定で証明書チェーンを検証しますが、チェーン内のいずれかの証明書が失効していないかまでは確認しません。そのため、curlをはじめOpenSSLに依存するブラウザ以外のツールは、ブラウザがすでにブロックした証明書を信頼し続けてしまう状態でした。
10月に判明した8件の脆弱な鍵
10月17日、ある研究者が、eMudhraの中間CA証明書8件の秘密鍵が脆弱だったことを発見しました。そのうちの1つは「4」という数字でした。このような鍵を持つ者であれば、どんなWebサイトの証明書でも発行できてしまいます。FirefoxとChromeは同日中にこの8件の証明書をブロックしました。しかし、他のほとんどのアプリケーションは、各ディストリビューションが更新版のca-certificatesパッケージを配布するまで、これらの証明書を信頼し続けました。
チェックの仕組み
26.10のcurlは、サーバーの証明書を、マシン上に保存された失効証明書のリストと照合します。このリストはMozillaが失効データを圧縮するために開発した手法「CRLite」で作成されており、Firefoxも同じ技術を使っています。データはすでにローカルにあるため、チェックのために新たなネットワークリクエストは発生しません。接続が照会の完了を待たされることはなく、外部のサーバーにどのサイトへアクセスしたかが知られることもありません。
upkiパッケージは、systemdタイマーを使って6時間ごとにデータを更新します。最初のダウンロードが完了するまでは、curlはこれまでどおりに動作します。チェックをすぐに有効にしたい場合は、aptでupkiをインストールし、取得サービスを手動で起動してください。
次はOpenSSLに対応
Foundationsチームは、Ubuntu 27.04でUbuntuのOpenSSLにupkiを組み込むことを計画しています。これが実現すれば、通常の証明書検証でも失効データが確認されるようになります。OpenSSLを直接利用する1,000以上のパッケージの大半は、コードを変更しなくてもこのチェックを利用できるようになる見込みです。それが実現するまでは、26.10のチェックの対象はcurlにとどまります。投稿では、これを「OS全体でブラウザ水準の証明書検証を実現するための、まさに最初の一歩」と位置づけています。
翻訳元: https://www.helpnetsecurity.com/2026/11/11/ubuntu-certificate-revocation-curl-openssl/