

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Résiliation du protocole HTTPS sur les EC2 instances Amazon exécutant .NET
<a name="SSLNET.SingleInstance"></a>

Le [fichier de configuration](ebextensions.md) suivant crée et exécute un PowerShell script Windows qui exécute les tâches suivantes :
+ Vérifie la présence d'un certificat HTTPS existant lié au port 443.
+ Obtient le [certificat PFX](configuring-https-ssl.md) à partir d'un compartiment Amazon S3.
**Note**  
Ajoutez une `AmazonS3ReadOnlyAccess` politique au `aws-elasticbeanstalk-ec2-role` pour accéder au certificat SSL dans le compartiment Amazon S3.
+ Obtient le mot de passe de AWS Secrets Manager.
**Note**  
Ajoutez une instruction `aws-elasticbeanstalk-ec2-role` qui autorise l'`secretsmanager:GetSecretValue`action pour le secret qui contient le mot de passe du certificat
+ Installe le certificat.
+ Lie le certificat au port 443.
**Note**  
Pour supprimer le point de terminaison HTTP (port 80), incluez la commande `Remove-WebBinding` sous la section **Remove the HTTP binding** de l'exemple.

**Example extensions .eb/ .config https-instance-dotnet**  

```
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
```

Dans un environnement à instance unique, vous devez également modifier le groupe de sécurité de l'instance pour autoriser le trafic sur le port 443. Le fichier de configuration suivant récupère l'ID du groupe de sécurité à l'aide d'une CloudFormation [fonction](ebextensions-functions.md) et y ajoute une règle.

**Example extensions .eb/ .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
```

Dans un environnement à répartition de charge équilibrée, vous configurez l'équilibreur de charge pour qu'il fasse [passer le trafic sécurisé sans le toucher, soit pour le déchiffrer et le rechiffrer à](https-tcp-passthrough.md) [des fins de chiffrement](configuring-https-endtoend.md). end-to-end