メニュー
AWS Elastic Beanstalk
開発者ガイド

Node.js を実行している EC2 インスタンスで HTTPS を終了する

次の設定ファイルの例では、デフォルトの nginx 設定を拡張し、ポート 443 をリッスンしてパブリック証明書とプライベートキーで SSL/TLS 接続を終了します。

例 .ebextensions/https-instance.config

files: /etc/nginx/conf.d/https.conf: mode: "000644" owner: root group: root content: | # HTTPS server server { listen 443; server_name localhost; ssl on; ssl_certificate /etc/pki/tls/certs/server.crt; ssl_certificate_key /etc/pki/tls/certs/server.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / { proxy_pass http://nodejs; proxy_set_header Connection ""; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; } } /etc/pki/tls/certs/server.crt: mode: "000400" owner: root group: root content: | -----BEGIN CERTIFICATE----- certificate file contents -----END CERTIFICATE----- /etc/pki/tls/certs/server.key: mode: "000400" owner: root group: root content: | -----BEGIN RSA PRIVATE KEY----- private key contents # See note below. -----END RSA PRIVATE KEY-----

files キーはインスタンスに次のファイルを作成します。

/etc/nginx/conf.d/https.conf

nginx サーバーを設定します。このファイルは、nginx サービスの開始時にロードされます。

/etc/pki/tls/certs/server.crt

インスタンスに証明書ファイルを作成します。証明書ファイルのコンテンツと証明書のコンテンツを置き換えます。

注記

YAML は、一貫したインデントに依存します。設定ファイルの例でコンテンツを置き換える際はインデントレベルを一致させ、テキストエディタがインデントにタブ文字ではなくスペースを使用していることを確認します。

中間証明書がある場合は、server.crt のサイト証明書の後に組み込みます。

-----BEGIN CERTIFICATE----- certificate file contents -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- first intermediate certificate -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- second intermediate certificate -----END CERTIFICATE-----
/etc/pki/tls/certs/server.key

インスタンスにプライベートキーのファイルを作成します。プライベートキーのコンテンツと、証明書リクエストまたは自己署名証明書を作成するのに使用されたプライベートキーのコンテンツを置き換えます。

注記

プライベートキーを含む設定ファイルがソースコントロールにコミットされないようにしてください。設定をテストして機能することを確認したら、プライベートキーを Amazon S3 に保存して、デプロイメント中にダウンロードするように設定を変更します。手順については、「秘密キーを Amazon S3 に安全に保存する」を参照してください。

単一インスタンスの環境では、インスタンスのセキュリティも変更してポート 443 のトラフィックを許可する必要があります。次の設定ファイルは、AWS CloudFormation 関数を使用してセキュリティグループの ID を取得し、それにルールを追加します。

例 .ebextensions/https-instance-single.config

Resources: sslSecurityGroupIngress: Type: AWS::EC2::SecurityGroupIngress Properties: GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]} IpProtocol: tcp ToPort: 443 FromPort: 443 CidrIp: 0.0.0.0/0

ロードバランシング環境では、エンドツーエンドの暗号化のために安全なトラフィックを変更なしでパスする複合および暗号化することができるようにロードバランサ―を設定します。