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 des connexions HTTPS sur les instances Amazon EC2 exécutant .NET Core sous Linux
Pour les types de conteneur .NET Core sous Linux, vous activez HTTPS avec un fichier de configuration .ebextensions
et un fichier de configuration nginx qui configure le serveur nginx pour utiliser HTTPS.
Ajoutez l'extrait suivant à votre fichier de configuration, en remplaçant les espaces réservés pour le certificat et la clé privée comme indiqué, puis enregistrez-le dans le répertoire .ebextensions
. Le fichier de configuration effectue les tâches suivantes :
-
La clé
files
crée les fichiers suivants sur l'instance :/etc/pki/tls/certs/server.crt
-
Crée le fichier de certificat sur l'instance. Remplacez le
contenu du fichier de certificat
par le contenu de votre certificat.Note
YAML utilise une mise en retrait cohérente. Respectez le niveau de retrait lorsque vous remplacez du contenu dans un exemple de fichier de configuration et veillez à ce que votre éditeur de texte utilise des espaces, et non des caractères de tabulation, pour la mise en retrait.
Si vous avez des certificats intermédiaires, incluez-les dans
server.crt
après votre certificat de site.-----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
-
Crée le fichier de clé privée sur l'instance. Remplacez le
contenu de clé privée
par le contenu de la clé privée utilisée pour créer la demande de certificat ou le certificat auto-signé.
-
La clé
container_commands
redémarre le serveur nginx une fois que tout est configuré de telle sorte que le serveur charge le fichier de configuration nginx.
Exemple .ebextensions/https-instance.config
files:
/etc/pki/tls/certs/server.crt:
content: |
-----BEGIN CERTIFICATE-----
certificate file contents
-----END CERTIFICATE-----
/etc/pki/tls/certs/server.key:
content: |
-----BEGIN RSA PRIVATE KEY-----
private key contents # See note below.
-----END RSA PRIVATE KEY-----
container_commands:
01restart_nginx:
command: "systemctl restart nginx"
Note
Évitez de valider un fichier de configuration qui contient votre clé privée de contrôle de code source. Une fois que vous avez testé la configuration et vérifié qu'elle fonctionne, stockez votre clé privée dans Amazon S3 et modifiez la configuration pour la télécharger durant le déploiement. Pour obtenir des instructions, consultez Stockage sécurisé des clés privées dans Amazon S3.
Placez les éléments suivants dans un fichier avec l'extension .conf
dans le répertoire .platform/nginx/conf.d/
de votre bundle de fichiers source (par exemple, .platform/nginx/conf.d/https.conf
). Remplacez app_port
par le numéro de port sur lequel votre application écoute. Cet exemple configure le serveur nginx pour écouter sur le port 443 à l'aide de SSL. Pour de plus amples informations sur les fichiers de configuration sur la plateforme .NET Core sous Linux, veuillez consulter Configuration du serveur proxy.
Exemple .platform/nginx/conf.d/https.conf
# HTTPS server
server {
listen 443 ssl;
server_name localhost;
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://localhost:app_port
;
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;
}
}
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 fonction AWS CloudFormation et lui ajoute une règle.
Exemple .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
Pour un environnement équilibré en charge, vous configurez l'équilibreur de charge de façon à transférer le trafic sécurisé sans le toucher ou à déchiffrer et rechiffrer le trafic pour un chiffrement de bout en bout.