SSLならセクティゴ・コモドのEV・企業・ドメイン認証

SSLならセクティゴ・コモドのEV・企業・ドメイン認証

サポート


こちらからサポート記事を検索いただけます

検索キーワード:

その他 (CaaS関連)

Route 53に対してプラグインを使わずRFC2136(DNSダイナミックアップデート)を直接使って証明書を取得することはできますか?

Route 53に対してRFC2136(DNSダイナミックアップデート)を直接使って証明書を取得することはできません。
RFC2136は、DNSサーバーに対して更新要求を送るための標準プロトコルですが、AWS Route 53はこのプロトコルをサポートしておらず、独自のAWS APIを通じてレコードを操作する仕様になっているためです。

その理由と代替案

なぜRoute 53環境ではRFC2136(DNSダイナミックアップデート)が使えないのか?

通常、rfc2136.ini を使用した動的な証明書取得(ACME)では、以下のような仕組みで動きます。

一般的なDNS(BINDなど) RFC2136に対応しており、特定の「TSIGキー」認証を使用して外部からレコードの書き換えを許可します。
Route 53 AWS独自の認証(IAM Access Key / Secret Key)とAPIを使用します。通信プロトコルがHTTP(S)ベースの独自APIであるため、標準的なDNSアップデートプロトコルであるRFC2136を受け付けません。


それでもAWSが提供する「DNSプラグイン」を使いたくない場合の代替案

もし、特定の「Route 53用プラグイン(python3-certbot-dns-route53など)」をインストールしたくない、あるいはインストールできない環境である場合、以下の方法が検討できます。

1. レゴ (lego) クライアントを使用する

Certbotではなく、Go言語で書かれた lego というACMEクライアントを使用する方法です。
仕組み AWS_ACCESS_KEY_ID と AWS_SECRET_ACCESS_KEY を環境変数にセットするだけで、内部的にRoute 53 APIを叩いてくれます。
メリット シングルバイナリで動作するため、システムにPythonプラグインをインストールする必要がありません。

2. 手動 (Manual) モードとフック機能の活用

Certbotの --manual モードを使いつつ、自作のスクリプトでAWS CLIを呼び出す方法です。

仕組み manual-auth-hook を使い、証明書更新時にAWS CLIの aws route53 change-resource-record-sets コマンドを実行してレコードを書き換えます。 これなら、Certbot本体以外の「プラグイン」は不要ですが、AWS CLIのインストールとシェルスクリプトの作成が必要になります。

3. acme.sh を使用する

シェルスクリプトだけで書かれたACMEクライアント acme.sh を使用する方法です。

仕組み これも外部プラグイン不要で、スクリプト内でRoute 53 APIをサポートしています。
環境変数にAWSの認証情報を入れるだけで、全自動更新が可能です。 構成のイメージ

RFC2136とRoute 53の違いに関するまとめ

Route 53 + rfc2136.ini: 不可能。



推奨:

システムを汚したくないのであれば acme.sh か lego を使用するのが、プラグイン管理の手間がなく最もスムーズです。

サポートトップへ

CaaSとは

注文・設定方法など

トラブルシューティング

その他