を実行している Amazon EC2インスタンスHTTPSでの終了。NET - AWS Elastic Beanstalk

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

を実行している Amazon EC2インスタンスHTTPSでの終了。NET

次の設定ファイルは、次のタスクを実行する Windows PowerShell スクリプトを作成して実行します。

  • ポート 443 への既存のHTTPS証明書バインディングをチェックします。

  • Amazon S3 バケットからPFX証明書を取得します。

    注記

    Amazon S3 バケット内のSSL証明書にアクセスaws-elasticbeanstalk-ec2-roleするための AmazonS3ReadOnlyAccessポリシーを に追加します。 Amazon S3

  • からパスワードを取得します AWS Secrets Manager。

    注記

    証明書パスワードを含むシークレットの secretsmanager:GetSecretValue アクションaws-elasticbeanstalk-ec2-roleを許可するステートメントを に追加します。

  • 証明書をインストールします。

  • 証明書をポート 443 にバインドします。

    注記

    HTTP エンドポイント (ポート 80) を削除するには、例の「バインHTTPディングの削除」セクションの下に Remove-WebBinding コマンドを含めます。

例 .ebextensions/https-instance-dotnet.config
files: "C:\\certs\\install-cert.ps1": content: | import-module webadministration ## Settings - replace the following values with your own $bucket = "amzn-s3-demo-bucket" ## S3 bucket name $certkey = "example.com.pfx" ## S3 object key for your PFX certificate $secretname = "example_secret" ## AWS Secrets Manager name for a secret that contains the certificate's password ## # Set variables $certfile = "C:\cert.pfx" $pwd = Get-SECSecretValue -SecretId $secretname | select -expand SecretString # Clean up existing binding if ( Get-WebBinding "Default Web Site" -Port 443 ) { Echo "Removing WebBinding" Remove-WebBinding -Name "Default Web Site" -BindingInformation *:443: } if ( Get-Item -path IIS:\SslBindings\0.0.0.0!443 ) { Echo "Deregistering WebBinding from IIS" Remove-Item -path IIS:\SslBindings\0.0.0.0!443 } # Download certificate from S3 Read-S3Object -BucketName $bucket -Key $certkey -File $certfile # Install certificate Echo "Installing cert..." $securepwd = ConvertTo-SecureString -String $pwd -Force -AsPlainText $cert = Import-PfxCertificate -FilePath $certfile cert:\localMachine\my -Password $securepwd # Create site binding Echo "Creating and registering WebBinding" New-WebBinding -Name "Default Web Site" -IP "*" -Port 443 -Protocol https New-Item -path IIS:\SslBindings\0.0.0.0!443 -value $cert -Force ## Remove the HTTP binding ## (optional) Uncomment the following line to unbind port 80 # Remove-WebBinding -Name "Default Web Site" -BindingInformation *:80: ## # Update firewall netsh advfirewall firewall add rule name="Open port 443" protocol=TCP localport=443 action=allow dir=OUT commands: 00_install_ssl: command: powershell -NoProfile -ExecutionPolicy Bypass -file C:\\certs\\install-cert.ps1

単一インスタンスの環境では、インスタンスのセキュリティも変更してポート 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

負荷分散された環境では、変更されていない を介して安全なトラフィックを渡すか、 end-to-end 暗号化のために復号化して再暗号化するようにロードバランサーを設定します。