Let's Encrypt とは?
Let's Encrypt は、無料の認証局です。Web サイトに https を付ける証明書を、自動的に、費用なしで発行しており、現在 Web の大半が暗号化されている理由の 1 つです。
エンジニアに相談する ナレッジベース
どういうものか
Let's Encrypt は、非営利団体の Internet Security Research Group が運営しており、2015 年に証明書の発行を始めました。その証明書は、主要なブラウザーとオペレーティングシステムのすべてで信頼されています。これらはドメイン認証の SSL 証明書で、Let's Encrypt は、そのドメインを管理していることだけを確認します。
流れ
記入するフォームも、支払う相手もいません。サーバー上の ACME クライアントと呼ばれるソフトウェアが、Let's Encrypt に証明書を要求します。Let's Encrypt は、ドメインを管理している証拠を示すためのチャレンジを返します。サーバーが決まったアドレスに公開すべきファイル、または DNS に現れるべきレコードのどちらかです。証明が確認されると、証明書が発行され、インストールされます。同じソフトウェアが、期限が切れる前に更新します。
- Certbot:最もよく知られたクライアントで、Electronic Frontier Foundation が保守しています。
- 組み込み済み:Caddy や Traefik などの Web サーバーやプロキシ、ほとんどのホスティングコントロールパネル、OPNsense などのファイアウォールは、自分で証明書を要求できます。
- Kubernetes では:cert-manager が、Kubernetes クラスター内のサービスの証明書を要求し、更新します。
頼る前に知っておくこと
- 意図的に短い有効期間:証明書の有効期間はこれまで 90 日で、Let's Encrypt はさらに短い期間へ移行しつつあります。更新は自動でなければなりません。手作業で更新する証明書は、いずれ忘れられます。
- ワイルドカードには DNS が必要:すべてのサブドメインに対応する証明書は、DNS レコードでしか証明できないため、クライアントが DNS プロバイダーにアクセスできる必要があります。
- 社内システム:インターネットから到達できないサーバーでも、実在するドメイン名を使っていれば、DNS 方式で証明書を取得できます。
- レート制限:1 つのドメインが一定期間に要求できる証明書の数には、上限があります。通常の使い方では上限に達しませんが、設定を誤ったスクリプトでは達することがあります。
- 企業の審査はなし:組織認証や EV 認証の証明書は発行されません。それらを必要とするサイトはわずかです。
- 更新を見守る:DNS が変わったり、ファイアウォールのルールが動いたり、サーバーが再構築されたりすると、自動更新は気づかないうちに失敗します。有効期限を監視してください。
KawaConnect における Let's Encrypt の扱い方
当社が構築する Linux サーバー、リバースプロキシ、Kubernetes クラスターでは Let's Encrypt の証明書を使い、更新を自動化して有効期限を監視します。サイトが Cloudflare の背後にある場合、訪問者に表示される証明書は Cloudflare のもので、サーバー上の証明書は別に扱います。更新に問題が起きたときにすばやく原因をたどれるよう、各システムがどの方式を使っているかを文書にまとめます。
関連サービス
詳しく見る
- Let's Encryptプロジェクト自身のサイト。ドキュメント、稼働状況、証明書の有効期間に関するお知らせがあります。
- Let's Encrypt の仕組みチャレンジと発行の手順を、順を追って説明します。
- Certbot特定の Web サーバーとオペレーティングシステムで証明書を取得する手順。
- cert-manager ドキュメントKubernetes 内の証明書の標準ツール。
- Wikipedia の Let's Encryptプロジェクトの歴史、スポンサー、規模。