AWS から無料の SSL 証明書を申請し、DKIM のトラブルシューティングを行う

今日は、AWS の無料ツールを使用して SSL 証明書を申請する方法を紹介します。次のセクションでは、AWS Certificate Manager (ACM) コンソールを使用してパブリック ACM 証明書をリクエストする方法について説明します。

AWS マネジメントコンソールにサインインし、https://console.aws.amazon.com/acm/home で ACM コンソールを開きます

下図にあるように、証明書にはプレメイド証明書とプライベート証明書の2種類があり、プレメイド証明書は個人ユーザーが選択することができ、民間の発行機関が運用するタイプのため、個人ユーザーは基本的に利用しません。

以下の [証明書のリクエスト] ページで、ドメイン名を入力します。Example Domainなどの完全修飾ドメイン名 (FQDN)またはExample Domainなどのトップレベル ドメイン名を使用できます左端のアスタリスク (*) をワイルドカードとして使用して、同じドメイン内の複数のサイト名を保護することもできます。

Amazon 認証局 (CA) が Web サイトの証明書を発行する前に、リクエストで指定されたすべてのドメイン名を所有しているか、管理できることを確認する必要があります。証明書を要求するときは、電子メール検証または DNS 検証のいずれかを選択できます。

DNSから確認する

 

以下では主に DNS 認証の使用について説明します。

  • 「DNS検証」を選択します。
  • レビューを選択
  • 検証ページで、ドメイン名情報を展開するか、ダウンロードした検証ファイルを選択します。[ドメイン情報] を展開すると、ACM には、ドメインを制御していることを確認するために DNS データベースに追加する必要がある CNAME レコードの名前と値が表示されます。

レコードは、名前とラベルの 2 つの部分で構成されます。ACM が生成する CNAME の名前部分は、アンダースコア文字 (_) とその後に続くトークンで構成されます。トークンは、AWS アカウントとドメイン名に関連付けられた一意の文字列です。ACM は、ドメイン名の先頭にアンダースコアとトークンを付けて、名前の部分を構築します。ACM は、アンダースコア文字の後に別のトークンが続くタグを作成します。これも AWS アカウントとドメイン名に関連付けられています。ACM は、AWS が認証に使用する DNS ドメイン名のアンダースコアとトークンを追加します: AWS Certificate Manager - アマゾン ウェブ サービス (AWS)次の例は、Example Domainsubdomain.example.com、および *.example.com の CNAME 形式を示しています。

  • ドメイン名 (.http://example.com など) を含む CNAME レコードを追加すると、ドメイン名 (.http://example.com.example.com など) が重複する可能性があります。重複を避けるために、CNAME の必要な部分のみを手動でコピーできます。その形式は_3639ac514e785e898d2646601fa951d5 です (詳しくは後述します)

 

  • DNS 構成を更新した後、[続行] を選択します。ACM には、すべての証明書のテーブル ビューが表示されます。要求した証明書とそのステータスが表示されます。DNS プロバイダーがレコードの更新を伝達した後、ACM がドメイン名を検証して証明書を発行するまでに最大で数時間かかる場合があります。この間、ACM は検証ステータスを検証保留中と表示します。ドメイン名が検証されると、ACM は検証ステータスを成功に変更します。AWS が証明書を発行した後、ACM は証明書のステータスを発行済みに変更します。

最後に、独自の無料証明書を正常に申請できます

認証時間は通常 1 ~ 24 時間かかるため、以下には表示されません

DKIMを正しく設定する方法

  • DKIM とは何ですか。DKIM は DomainKeys Identified Email の略です。これは、電子メールを送信する組織が電子メールを送信する権限を持っているかどうかを確認する方法を提供します。

 

  • DKIM は、DNS ゾーンに公開キーを追加する必要があります。キーは通常、SendGrid などの電子メールを送信する組織から消印付きで提供されます。キーは TXT レコードとしてゾーンに直接挿入されるか、プロバイダーの DNS 内のキーを指す CNAME になります。

 

このブログを書いているときに問題を発見しました。つまり、DNS に CNAME を追加するときに、一部の DNS プロバイダーでは先頭にアンダースコアを使用できず、ホスト名の種類が一致しないというメッセージが表示されます。

 

SES によって作成されるレコードは TXT レコードではなく CNAME であるため、SES は署名キーをホストできます。署名キーをエスクローすることにより、SES は署名資格情報を自動的にローテーションし、キー侵害のリスクを軽減できます。

 

一部の DNS プロバイダーはアンダースコアを含む CNAME レコードの追加をサポートしていませんが、RFC では特にこれを許可しています。ただし、DKIM 仕様ではレコード名にアンダースコアを使用する必要があるため、アンダースコアを削除することはできません。アンダースコアは、SES またはそのクライアントによって制御されないレコード名の唯一の部分です。

 

インターネット標準では、アンダースコア文字は dnsName で使用できませんが、TLS/SSL 証明書の SAN フィールドで使用する場合はグレーゾーンともみなされています。DNS プロバイダーでこのようなインシデントが発生した場合は、次の方法を使用して解決できます。

 

最初の解決策は、DNS プロバイダーを変更することです。アマゾン ウェブ サービスは、Amazon Route 53 と呼ばれるスケーラブルなドメイン名サービスを提供します。これは、RFC によって課された標準に従い、SES で生成された CNAME レコードを許可します。SES を使用して Route 53 と統合します。SES と同じ AWS アカウントを使用して Route 53 にドメイン名を設定すると、ワンクリックのプロセスでドメイン検証と DKIM を設定できます。

 

2 番目の方法は、電子メールの送信にサブドメイン (この例では sales.ses-example.com など)を使用し、CNAME レコードでアンダースコアを正しく許可する Amazon Route 53 などの DNS プロバイダーに委託することです。その後、メイン ドメインで実行したのと同じ手順を使用して、サブドメインでドメイン検証と DKIM 検証プロセスを実行できます。電子メールは DKIM 署名されますが、「差出人」アドレスにはサブドメインが含まれます (この場合、「差出人」アドレスは <any-local-part>@ sales.ses-example.comになります)。

 

3 番目のオプションは、自分自身を署名に使用することです。これにより、キーと署名プロセスを完全に制御できるようになりますが、実装と維持にはより多くの作業が必要になります。

 

最後に、RFC で許可されているように、CNAME レコード内のアンダースコアを適切にサポートするように DNS プロバイダーに依頼できます。

 

ドメイン名については、DNS プロバイダーが CNAME レコードのアンダースコアのサポートを有効にしていると想定しており、DKIM ドキュメントで指定されているように必要な DNS エントリを安全に追加できるようになりました。この手順では、SES から確認メールが送信され、SES コンソールでドメインの DKIM 検証ステータスが保留中から検証済みに変更されるのを待ちます。これにより、CNAME レコードの存在が確認されます。


この記事はもともと Halo Cloud SA チームによって作成されたものです。転載する場合は著者と出典を明記してください。

おすすめ

転載: blog.csdn.net/SinnetCloud/article/details/108273368