4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ACMプライベートCAをクロスアカウント共有してNLBに証明書を設定する

4
Posted at

内容

プライベート接続環境のELBに証明書を設定する場合、証明書の発行方法には様々な方法があります。前回は下記記事にて、AD CSを使用してプライベート証明機関構築後、プライベート証明書を発行する手順を記載しました。

Active Directory証明書サーバで証明書を発行してALBに設定する

今回はACM(AWS Certificate Manager)でプライベートCA作成後、プライベート証明書を発行し、NLBに設定する方法を記載します。

構成

中央側のアカウントでプライベートCAを作成し、AWS RAM(Resource Access Manager)を使用して、作成したプライベートCAを別アカウントに共有します。共有先のアカウントでプライベート証明書を発行後、NLBにTLSリスナーを追加して、ACMで発行した証明書を指定します。設定完了後、クライアント想定のEC2からNLBに接続確認を行います。

aa01.png

前提条件

  • VPC内のリソース(NLB、EC2)は構築済みの状態とします

全体の流れ

  • ACMでプライベートCAを作成
  • ルートCA証明書を作成
  • RAMでプライベートCAを共有
  • RAMの共有を承認
  • プライベート証明書の作成
  • NLBに証明書の設定
  • 接続確認①(警告表示の確認)
  • ルート証明書のインポート
  • 接続確認②(正常接続の確認)

ACMでプライベートCAを作成

ACMのコンソールからプライベートCAを作成をクリックします。

ca01.png

サブジェクトの識別子のオプションに組織(O)や共通名(CN)などを入力します。その他の選択肢はデフォルトで進んでいきます。

ca02.png

プライベート認証機関が作成されて保留中のステータスとなります。

ca03.png

ルートCA証明書を作成

作成されたプライベート認証機関を選択後、CA証明書をインストールをクリックします。

ca03.png

デフォルトのまま、確認してインストールをクリックします。

ca04.png

ルートCA証明書がインストールされ、プライベート認証機関のステータスがアクティブに変更されます。

ca05.png

RAMでプライベートCAを共有

アクションからリソース共有を管理を選択するとRAMコンソールに移動することができます。

ca06.png

RAMコンソールからリソース共有を作成をクリックします。

ca07.png

リソース共有名を入力後、リソースタイプでプライベートCAを選択後、先ほど作成したプライベートCAを選択します。

ca08.png

アクセス権はデフォルトのまま進みます。

ca09.png

プリンシパルからAWSアカウントを選択後、共有先のAWSアカウントIDを入力します。

ca10.png

リソースが共有されたことを確認します。

ca11.png

RAMの共有を承認

共有先のアカウントにログイン後、RAMコンソールに移動します。自分と共有 → リソース共有から共有されたリソースを選択します。

ca12.png

リソース共有を承認を選択します。

ca13.png

ACMのコンソールに移動後、プライベート認証機関が共有されていることを確認します。

ca14.png

プライベート証明書の作成

ACMのコンソールから証明書に移動後、リクエストをクリックします。

ca15.png

プライベート証明書をリクエストを選択します。

ca16.png

証明機関で先ほど承認したプライベート承認期間を選択します。

ca17.png

証明書に使用するドメイン名などを入力します。その他はデフォルトのまま進んでいきます。

ca18.png

プライベート証明書が発行されたことを確認します。

ca19.png

NLBに証明書の設定

NLBにリスナーを追加します。プロトコルにTLSを選択します。

ca20.png

TLSリスナーの場合、証明書を選択する必要がありますが、ここでACMからを選択後、先ほど発行したプライベート証明書を選択します。

ca21.png

リスナー作成完了後、下記動作確認のため、NLBのDNS名test-nlb-xxx.elb.ap-northeast-1.amazonaws.comをメモしておきます。

接続確認①(警告表示の確認)

クライアント想定EC2にログイン後、ブラウザからhttps://test-nlb-xxx.elb.ap-northeast-1.amazonaws.comを入力後、下記警告画面が表示されることを確認します。

ca22.png

警告画面を進んでいき、下記IISの画面が表示されることを確認します。

ca23.png

続いて証明書確認のため、証明書発行ドメイン(今回はhttps://test.xxx.localと想定)でアクセス出来る設定を行います。今回は一時的なテストのため、ローカルのhostsファイルに記述を行います。

NLBのDNS名にpingを実行してNLBのIPアドレスを確認します。

ping test-nlb-xxx.elb.ap-northeast-1.amazonaws.com

test-nlb-xxx.elb.ap-northeast-1.amazonaws.com [10.xx.xx.xx]に ping を送信しています 32 バイトのデータ:
要求がタイムアウトしました。

HOSTSファイルを開いて下記記述を追加します。test.xxx.localにアクセスすると10.xx.xx.xxにアクセスしたことになります。

\Windows\System32\drivers\etc\hosts
10.xx.xx.xx	test.xxx.local

HOSTSファイル記述後、ブラウザからhttps://test.xxx.localにアクセスします。この時点では警告が表示されることを確認します。

ca24.png

ルート証明書のインポート

クライアントから接続時、警告が表示されないように、ルートCAの証明書をクライアント側にインポートします。
ACMのコンソールからCA証明書の取得を行います。

ca25.png

CA証明書が表示されるため、エクスポートを行います。

ca26.png

クライアント端末に移動後、ファイル名を指定して実行からcertlm.mscを入力し、証明書を起動します。下記画面のようにインポートを選択します。

ca27.png

次へをクリックします。

ca28.png

先ほどエクスポートしたファイルを指定します。

ca29.png

デフォルトのまま次へをクリックします。

ca30.png

完了をクリックします。

ca31.png

接続確認②(正常接続の確認)

再度ブラウザからhttps://test.xxx.localにアクセスします。今度は警告が表示されないことを確認します。

ca32.png

まとめ

AD CSでプライベート証明機関を作成する場合と比較して、管理は容易になると思います。ACMでプライベート証明機関を作成する場合のコストは少し高めですが、サーバ管理費や運用コストなどを比較すると、結果的にマネージドサービスを使用した方が効率的かもしれません。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?