AWS Certificate Manager(ACM)でSSL/TLS証明書を作成する

AWS

こんにちはますのです。
AWSのAPI GatewayやCloudFront、ELB等に設定が出来る証明書が欲しいと思ったのです。
証明書の作成ですが、外部の証明機関に発行依頼したり、変換したりあれやこれやとやる必要があり、発行手順を理解してやるには結構なパワーを使っていました。しかも期限更新で毎年実行するので忘れたころに手順を探して…。と運用にも気を遣うところになります。

しかーし!!
AWSサービス内だけで言えば、ACMのおかげで設定してしまえば自動運用が可能になるという優れものです。
1度作成して設定してしまえば証明書の自動更新もしてくれる有能っぷり。しかも無料。これは使うしかないであります。

前提としてRoute53にドメインが設定されている状態を想定しています。
Route53への設定やドメイン取得がまだの場合はコチラの記事参考にどうぞです。
ドメイン取得とRoute53へのドメイン登録の手順

API GatewayやCloudFrontでACMを利用する際の注意点

今回の構成としては、API GatewayやCloudFrontで利用する想定となります。
そのため証明書作成時のリージョンを「us-east-1」に設定する必要があります。

API Gatewayのエッジ最適化のカスタムドメイン名、CloudFrontのオリジンドメイン名は「us-east-1」となることが起因になります。

注記
ACM のエッジ最適化のカスタムドメイン名を含む API Gateway 証明書を使用するには、米国東部(バージニア北部) (us-east-1) リージョンで証明書をリクエストまたはインポートする必要があります。API Gateway リージョン別カスタムドメイン名については、API と同じリージョンで証明書を要求またはインポートする必要があります。証明書は、信頼された公的認証機関によって署名され、当該カスタムドメイン名を対象としている必要があります。引用:AWS Certificate Manager での証明書の準備
CloudFrontのオリジンドメイン名はFQDNに「リージョン名」を追記することで回避出来そうです。
この辺りは別の機会にて。
参考:https://dev.classmethod.jp/articles/s3-cloudfront-redirect/

AWS Certificate Manager(ACM)で証明書を作成する

まずはリージョンを「us-east-1」に変更します。
※API GatawayやCloudFrontで利用しない場合は不要。
AWS管理コンソール>画面右上リージョン名をクリック>「米国東部(バージニア北部)us-east-1」をクリック
Certificate Manager>「証明書のリクエスト」をクリック
パブリック証明書のリクエストを選択>「証明書のリクエスト」を選択
ドメイン名の追加で取得したい証明書のドメイン名を入力>「次へ」をクリック
※今回はワイルドカード証明書でSSL証明書を取得します。サブドメインを作った時にも割り当てられるので便利。
DNSの検証を選択>「次へ」をクリック
任意のタグ名を入力(今回は空白)>「確認」をクリック
確認画面で「確定とリクエスト」をクリック
検証画面で「検証状態:検証保留中」となる>「続行」をクリック
※特に設定に問題等無ければ1分程で「検証状態:成功」に切り替わります。
ACMの管理画面に移動します。
先ほど作成した証明書が登録され、青丸のように「状況:発行済み」「ドメイン>検証状態:成功」となればSSL証明書の作成が完了となります。
Route53へレコードが作成されていない場合は、「Route53でのレコードの作成」をクリックするとレコードが作成されます。
検証状態が検証保留中から変化が無い場合は試してみましょう。
以上で作成が完了となります。
あとはELBやCloudFront、APIGatewayの画面上から、上記の証明書を選択するだけで完了となります。
GUIでポチポチするだけで、証明書の作成や更新の自動化が完了するなんて、有難いことこの上ないであります。
ただ、証明書作成の手順を覚えると中間証明書やルート証明書等の考え方が分かるので、知識が薄れてしまうので一長一短です。
証明書の仕組みがまだ理解し切れていないので、知識の土台はしっかりしておきたい所存です。
最新情報をチェックしよう!