ESAでCNAMEモードでワイルドカード証明書を取得する方法
Categories:
ドメインがアリババクラウドDNSまたはサードパーティにホストされており、ドメインNSを移行できないがワイルドカードが必要な場合。アリババクラウドESAは10枚の証明書のクォータを提供していますが、明らかに十分ではありません。
ここではワイルドカード証明書を取得する方法を共有します。最後に原理を説明します。
2つのビジネスインターフェースで操作が必要です:
- ESA
- クラウドDNS(またはサードパーティDNS)
操作手順
- ESA: DNS -> 設定: NSアクセスマードに変換, 直ちに確認、他の操作は不要
- ESA: 無料エッジ証明書を申請、
*.example.comのみ申請、自分のドメインを使用 - ESA: 申請中の証明書のドロップダウンを開き、TXTレコードを取得、ホストレコード:
_acme-challenge.example.com, レコード値:-PewtWrH93avbM_bScUILtcNwCHifNvjZIa2VgT9seQ - クラウドDNS: TXTレコードを作成、上記のホストレコードとレコード値を入力
- ワイルドカード証明書を取得するまで待機、10分以内に取得できない場合はエラーがあり、自分でエラーを確認
- ESA: DNS -> 設定: CNAMEアクセスマードに変換, 直ちに確認、他の操作は不要
原理
無料証明書はすべてletsencrypt由来で、2つの認証方法があります:
- HTTP-01チャレンジ: Let’s Encryptの検証サーバーはHTTPリクエストで特定のファイル(.well-known/acme-challenge/パス下)にアクセスし、ドメインの管理権を確認します
- DNS-01チャレンジ: ドメインのDNSレコードにTXTレコードを追加する必要があります。特定のTXTレコードをDNSに追加することで、ドメインの管理権を証明できます
ワイルドカード証明書はDNS-01チャレンジのみで取得可能で、DNSレコードを設定する必要があります。そのためESAはドメインをESAプラットフォームにホストさせる必要がありますが、操作手順中の"ESA: DNS -> 設定: NSアクセスマードに変換“はESAのAPIApplyCertificateの戻り情報を分析して得た結論で、このステップは何の実際的作用もありません。単にアリババクラウドの検証を回避するためだけです。
核心的なステップはLet’s Encryptに証明書を申請する際、予め決めたTXTレコードをドメインのNSサーバーに書き込むことで、それがクラウドDNSでもESAでも、ドメインが自分に属することを証明できます。
まとめ
ESAとクラウドDNSは同じアリババクラウドに属していますが、データの相互運用ができません。ESAは明らかにドメインが自分のアカウントに属するかを検証する能力を持っており、ワイルドカード証明書の取得はクラウドDNSに1つのレコードを追加し、認可するだけで済むのに、実装していません。体験には改善の余地があります。
この方法で取得した証明書は更新できない可能性があり、他の方法で証明書をESAに同期させることができます: https://api.aliyun.com/api/ESA/2024-09-10/SetCertificate