Tech Tips

  1. プログラミング
  2. 322 view

SSL 自己証明書の作成と AWS Application Load Balancer への設定

Bethany DrouinによるPixabayからの画像
たまに、技術検証用として、openssl コマンドで自己証明書(RSA)を作成して Web サーバ等に設定したりしています。 しかし、コマンドが覚えられず毎回調べ直してしまっているので、備忘録として自己証明書の作成方法、そして AWS の Application Load Balancer (ALB)への設定の仕方を書きます。 また、SSL 証明書の仕組みを、さっとおさらいしたいときは以下の記事を読み直しています。

自己証明書の作成方法

以下のコマンドで秘密鍵を作成します。
$ openssl genrsa -out ./server.key 2048
次に、以下のコマンドで公開鍵を作成します。後で使う ALB を東京リージョンで作成すると、現時点では「*.ap-northeast-1.elb.amazonaws.com」のドメインになるので、Common Name にはそのように設定しています。
$ openssl req -new -key ./server.key -out ./server.csr
...
Country Name (2 letter code) []:JP
State or Province Name (full name) []:Tokyo
Locality Name (eg, city) []:Unknown
Organization Name (eg, company) []:zuqqhi2
Organizational Unit Name (eg, section) []:
Common Name (eg, fully qualified host name) []:*.ap-northeast-1.elb.amazonaws.com
Email Address []:
...
A challenge password []: 
最後に、以下のコマンドで証明書を作成します。
$ openssl x509 -in ./server.csr -days 365 -req -signkey ./server.key -out ./server.crt
これで SSL 自己証明書の作成は完了です。 次に、作成した証明書を AWS の ALB に設定してみます。

AWS ALB への作成した SSL 自己証明書の設定

作成した証明書を AWS Certificate Manager (ACM) へインポートします。 ACM コンソールの「証明書のインポート」をクリックします。
「証明書本文」に server.crt の中身を、「証明書のプライベートキー」に server.key の中身をコピーします。「証明書チェーン」は空欄のまま、「次へ」をクリックします。(画像ではエラーが出てますが、コピーしたあと別の欄を選択すると、正しく作成できている場合はエラーは表示されません。)
次の画面で、「レビューとインポート」をクリックし、その後「インポート」をクリックすることで、作成した証明書を ACM にインポートすることができます。 ALB のバックエンドとして、以下のように設定した EC2 インスタンスを作成します。以下の表に記載していない項目についてはすべてデフォルトです。また、以降はデフォルトの VPC にインターネットゲートウェイが設定されている前提で勧めます。
設定項目
Amazon マシンイメージ(AMI)Amazon Linux 2 AMI (HVM), SSD Volume Type
01748a72bed07727c
インスタンスタイプt2.micro
ユーザーデータ#!/bin/bash
sudo yum update -y
sudo yum install -y httpd
echo Welcome to $HOSTNAME > /var/www/html/index.html
service httpd start
chkconfig httpd on
セキュリティグループdefault
次に、ターゲットグループを作成し(名前以外、すべてデフォルトの設定)、先ほど作成した EC2 インスタンスをターゲットに追加します。 最後に以下のように設定した ALB を作成します。
設定項目
ロードバランサーの種類Application Load Balancer
名前適当に設定してください。
ロードバランサーのプロトコル「リスナーの追加」をクリックして、
プロコトルが「HTTPS(セキュア HTTP)」でポートが「443」のリスナーを追加します。
アベイラビリティーゾーンap-northeast-1a 、ap-northeast-1c 、ap-northeast-1d すべて選択します。
セキュリティ設定の構成証明書タイプ: ACM から証明書を選択する (推奨)
証明書の名前: 先ほど作成した自己証明書
セキュリティグループ– default
– 以下のインバウンドルールを持つセキュリティグループ
タイプ: HTTP 、HTTPS
ソース: マイ IP
ターゲットグループターゲットグループ: 既存のターゲットグループ
名前: 先ほど作成したターゲットグループ
ALB のプロビジョニングが終了したら、HTTPS プロトコルで ALB の DNS 名にアクセスしてください。 警告は無視してアクセスしてください。Google Chrome の場合は、以下の記事の方法で警告を無視することができました。 「Welcome to …」というようなテキストのみ表示される画面が出たら、設定完了です。

プログラミングの最近記事

  1. Amazon Lex V2 で入力させる内容を分岐する方法

  2. Amazon Rekognition Video を使って動画内の顔検出と境界ボックスの描…

  3. Google Calendar API で自分のカレンダーの予定を取得する方法

  4. LeetCode の問題リストページで Like/Dislike 数を表示するだけの雑な …

  5. AWS Amplify Console + Nuxt.js で特定のパス以下にデプロイする…

関連記事

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

PAGE TOP