解決すること
- CAA レコードを確認して Let's Encrypt が許可された CA であることを確認します — 発行失敗の最も一般的な原因です。
- Cloudflare のオレンジ色の雲プロキシをオフにします。これにより Caddy が TLS ハンドシェイクを完了できなくなります。
- Let's Encrypt のレート制限ウィンドウ(登録ドメインあたり週 50 枚)を特定し、待機します。
カスタムドメインが確認済みなのに訪問者がTLS警告(「証明書が信頼されていません」、「ERR_CERT_AUTHORITY_INVALID」)を見る場合、CaddyがLet's Encryptの証明書を取得できなかったことを意味します。以下の手順で修正してください。
1. CAAレコードを確認する#
これが最もよくある原因です。次のコマンドを実行してください:
dig CAA links.acme.com
0 issue "digicert.com" または letsencrypt.org 以外の認証局が表示される場合、Let's Encryptがブロックされており、証明書の発行がサイレントに失敗します。
修正方法: ドメインのCAAレコードに 0 issue "letsencrypt.org" を追加してください。既存の認証局のエントリは他の証明書用として残せます。CAAは追加的なものです。
CAAの伝播が完了するまで1時間待ってから、ダッシュボードの確認を再試行をクリックしてください。
2. Cloudflareプロキシを確認する#
DNSプロバイダーがCloudflareで、レコードの「プロキシ状態」がオレンジ色のクラウドになっている場合、CloudflareはエッジでTLSを終端しており、独自の証明書を使用しています。これがCaddyのオンデマンドTLSハンドシェイクを妨げます。
修正方法: オレンジ色のクラウドをグレー(DNSのみ)に切り替えてください。CloudflareのCDNは当社のエッジと互換性がありません。エッジPOPでのアグレッシブなキャッシュにより、何も失われません。
どうしてもCloudflareプロキシが必要な場合(WAFルールなど)、Businessプランではカスタムオリジンモードをサポートしています。CloudflareをエッジIPに向けてプロキシ接続を受け入れます。有効化はサポートにメールでお問い合わせください。
3. レート制限を確認する#
Let's Encryptは、登録ドメインごとに週50枚の証明書というレート制限があります。短期間に多数のサブドメインを追加した場合、この制限に達する可能性があります。
修正方法: 待機してください。12時間ごとに再試行しており、ほとんどのレート制限ウィンドウは7日以内に解除されます。既に発行された証明書は引き続き機能します。新規発行のみがブロックされます。
crt.sh でドメインの最近の証明書を確認することでレート制限の状態を確認できます。
まだ解決しない場合#
- ステータスページ を確認してください。Let's Encrypt自体でインシデントが発生している場合があります。
- ダッシュボードのドメイン詳細ページには、最新のCaddyエラーメッセージがそのまま表示されます。チャットに貼り付けていただければ、一緒に診断します。
- エアギャップ環境の場合、独自の内部CAを使用してCaddyをセルフホストできます。セルフホスティングガイドに設定変更の詳細が記載されています。
動作するようになったら#
60日後に更新が成功したかどうかを確認するリマインダーを設定してください。更新が成功すると、ワークスペースの請求担当者にメールが送信されます(設定 → 通知 でオプトアウト可能)。更新が失敗した場合は、メールと同時にWebhookも発火するため、アラートで検知できます。