Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Terminazione HTTPS su EC2 istanze Amazon in esecuzione. NET
Il seguente file di configurazione crea ed esegue uno PowerShell script di Windows che esegue le seguenti attività:
-
Verifica la presenza di un'associazione HTTPS di certificati esistente alla porta 443.
-
Ottiene il PFXcertificato da un bucket Amazon S3.
Nota
Aggiungi una
AmazonS3ReadOnlyAccess
policy per accedereaws-elasticbeanstalk-ec2-role
al SSL certificato nel bucket Amazon S3. -
Ottiene la password da. AWS Secrets Manager
Nota
Aggiunge un'istruzione
aws-elasticbeanstalk-ec2-role
che consenta l'secretsmanager:GetSecretValue
azione relativa al segreto che contiene la password del certificato -
Installa il certificato.
-
Associa il certificato alla porta 443.
Nota
Per rimuovere l'HTTPendpoint (porta 80), includi il
Remove-WebBinding
comando nella sezione Rimuovi l'HTTPassociazione dell'esempio.
Esempio .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
In un ambiente con una singola istanza, devi anche modificare il gruppo di sicurezza dell'istanza per consentire il traffico sulla porta 443. Il seguente file di configurazione recupera l'ID del gruppo di sicurezza utilizzando una AWS CloudFormation funzione e vi aggiunge una regola.
Esempio .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