As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Encerrar o HTTPS em instâncias do Amazon EC2 que executam o .NET
O arquivo de configuração a seguir cria e executa um PowerShell script do Windows que executa as seguintes tarefas:
-
Verifica se há uma associação de certificado HTTPS existente à porta 443.
-
Obtém o certificado PFX de um bucket do Amazon S3.
nota
Adicione uma
AmazonS3ReadOnlyAccess
política aoaws-elasticbeanstalk-ec2-role
para acessar o certificado SSL no bucket do Amazon S3. -
Obtém a senha de AWS Secrets Manager.
nota
Adicione uma declaração
aws-elasticbeanstalk-ec2-role
que permita asecretsmanager:GetSecretValue
ação do segredo que contém a senha do certificado -
Instala o certificado.
-
Vincula o certificado à porta 443.
nota
Para remover o endpoint HTTP (porta 80), inclua o comando
Remove-WebBinding
na seção Remova a vinculação HTTP do exemplo.
exemplo .ebextensions/ .config https-instance-dotnet
files:
"C:\\certs\\install-cert.ps1":
content: |
import-module webadministration
## Settings - replace the following values with your own
$bucket = "DOC-EXAMPLE-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
Em um ambiente de instância única, você também deve modificar o grupo de segurança da instância para habilitar o tráfego na porta 443. O arquivo de configuração a seguir recupera a ID do grupo de segurança usando uma AWS CloudFormation função e adiciona uma regra a ela.
exemplo .ebextensions/ .config https-instance-single
Resources:
sslSecurityGroupIngress:
Type: AWS::EC2::SecurityGroupIngress
Properties:
GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]}
IpProtocol: tcp
ToPort: 443
FromPort: 443
CidrIp: 0.0.0.0/0
Para um ambiente com balanceamento de carga, você configura o balanceador de carga para passar tráfego seguro intocado ou descriptografar e recriptografar para criptografia. end-to-end