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 di HTTPS su istanze EC2 che eseguono Ruby
Per i tipi di container Ruby, il modo in cui abiliti HTTPS dipende dal tipo di server di applicazioni utilizzato.
Configurare HTTPS per Ruby con Puma
Per i tipi di container Ruby che utilizzano Puma come server di applicazioni, utilizza un file di configurazione per abilitare il protocollo HTTPS.
Aggiungi il frammento di codice seguente al file di configurazione, sostituendo il materiale del certificato e della chiave privata come indicato, quindi salvalo nella directory .ebextensions
del bundle di origine. Il file di configurazione esegue le seguenti attività:
-
La chiave
files
crea i seguenti file sull'istanza:/etc/nginx/conf.d/https.conf
-
Configura il server nginx. Questo file viene caricato quando si avvia il servizio nginx.
/etc/pki/tls/certs/server.crt
-
Crea il file di certificato sull'istanza. Sostituisci i
contenuti del file del certificato
con i contenuti del tuo certificato.Nota
YAML si basa sulla coerenza del rientro. Utilizza lo stesso livello di rientro quando sostituisci del contenuto in un file di configurazione di esempio e assicurati che il tuo editor di testo utilizzi gli spazi e non le tabulazioni per il rientro.
Se disponi di certificati intermedi, includili in
server.crt
dopo il certificato del sito.-----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
-
Crea il file della chiave privata sull'istanza. Sostituisci i
contenuti della chiave privata
con i contenuti della chiave privata utilizzata per creare la richiesta di certificato o il certificato autofirmato.
-
La chiave
container_commands
riavvia il server nginx dopo che tutto è stato configurato in modo che il server utilizzi il nuovo filehttps.conf
.
Esempio .ebextensions/https-instance.config
files:
/etc/nginx/conf.d/https.conf:
content: |
# HTTPS server
server {
listen 443;
server_name localhost;
ssl on;
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://my_app;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
}
location /assets {
alias /var/app/current/public/assets;
gzip_static on;
gzip on;
expires max;
add_header Cache-Control public;
}
location /public {
alias /var/app/current/public;
gzip_static on;
gzip on;
expires max;
add_header Cache-Control public;
}
}
/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: "service nginx restart"
Nota
Non utilizzare un file di configurazione che contiene la tua chiave per il controllo delle origini. Una volta eseguito il test e verificato che la configurazione funzioni, archivia la tua chiave privata in Amazon S3 e modifica la configurazione per scaricarla durante la distribuzione. Per istruzioni, consultare Archiviazione di chiavi private in modo sicuro in Amazon S3.
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 funzione AWS CloudFormation a cui 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
Per gli ambienti con bilanciamento del carico, configura il sistema di bilanciamento del carico affinché trasferisca il traffico protetto senza modifiche o esegua la decrittografia e poi nuovamente la crittografia per una crittografia end-to-end.
Configurare HTTPS per Ruby con Passenger
Per i tipi di container Ruby che utilizzano Passenger come server di applicazioni, utilizza un file di configurazione e un file JSON per abilitare il protocollo HTTPS.
Per configurare HTTPS per Ruby con Passenger
-
Aggiungi il frammento di codice seguente al file di configurazione, sostituendo il materiale del certificato e della chiave privata come indicato, quindi salvalo nella directory
.ebextensions
del bundle di origine. Il file di configurazione esegue le seguenti attività:-
La chiave
files
crea i seguenti file sull'istanza:/etc/pki/tls/certs/server.crt
-
Crea il file di certificato sull'istanza. Sostituisci i
contenuti del file del certificato
con i contenuti del tuo certificato.Nota
YAML si basa sulla coerenza del rientro. Utilizza lo stesso livello di rientro quando sostituisci del contenuto in un file di configurazione di esempio e assicurati che il tuo editor di testo utilizzi gli spazi e non le tabulazioni per il rientro.
Se disponi di certificati intermedi, includili in
server.crt
dopo il certificato del sito.-----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
-
Crea il file della chiave privata sull'istanza. Sostituisci i
contenuti della chiave privata
con i contenuti della chiave privata utilizzata per creare la richiesta di certificato o il certificato autofirmato.
Esempio Frammento .Ebextensions per la configurazione di HTTPS per Ruby con Passenger
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-----Nota
Non utilizzare un file di configurazione che contiene la tua chiave per il controllo delle origini. Una volta eseguito il test e verificato che la configurazione funzioni, archivia la tua chiave privata in Amazon S3 e modifica la configurazione per scaricarla durante la distribuzione. Per istruzioni, consultare Archiviazione di chiavi private in modo sicuro in Amazon S3.
-
-
Crea un file di testo e aggiungi il seguente JSON al file. Salvalo nella directory principale del bundle di origine con il nome
passenger-standalone.json
. Questo file JSON configura Passenger per l'utilizzo di HTTPS.Importante
Questo file JSON non deve contenere un contrassegno ordine di byte (BOM, Byte Order Mark). In caso contrario, la libreria JSON di Passenger non leggerà il file correttamente e il servizio Passenger non verrà avviato.
Esempio passenger-standalone.json
{ "ssl" : true, "ssl_port" : 443, "ssl_certificate" : "/etc/pki/tls/certs/server.crt", "ssl_certificate_key" : "/etc/pki/tls/certs/server.key" }
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 funzione AWS CloudFormation a cui 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
Per gli ambienti con bilanciamento del carico, configura il sistema di bilanciamento del carico affinché trasferisca il traffico protetto senza modifiche o esegua la decrittografia e poi nuovamente la crittografia per una crittografia end-to-end.