Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Terminación de HTTPS en instancias EC2 que ejecutan Ruby
En los tipos de contenedores de Ruby, la forma de habilitar HTTPS depende del tipo de servidor de aplicaciones utilizado.
Configuración de HTTPS para Ruby con Puma
En los tipos de contenedores de Ruby que utilizan Puma como servidor de aplicaciones, debe usar un archivo de configuración para habilitar el servidor HTTPS.
Añada el siguiente fragmento al archivo de configuración, sustituyendo los marcadores de posición de certificado y las claves privadas tal como se indica, y guarde el archivo en el directorio .ebextensions
del paquete de código fuente. El archivo de configuración realiza las siguientes tareas:
-
La clave
files
crea los siguientes archivos en la instancia:/etc/nginx/conf.d/https.conf
-
Configura el servidor de nginx. Este archivo se carga cuando se inicia el servicio de nginx.
/etc/pki/tls/certs/server.crt
-
Crea el archivo de certificado en la instancia. Sustituya
certificate file contents
por el contenido del certificado.nota
YAML usa la sangría uniforme. Utilice el mismo nivel de sangría cuando sustituya el contenido en el archivo de configuración de ejemplo y asegúrese de que el editor de texto utiliza espacios para la sangría, no tabuladores.
Si tiene certificados intermedios, inclúyalos en
server.crt
después del certificado del sitio.-----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 el archivo de clave privada en la instancia. Sustituya
private key contents
por el contenido de la clave privada usada para crear la solicitud del certificado o el certificado autofirmado.
-
La clave
container_commands
reinicia el servidor nginx una vez que todo está configurado para que el servidor use el nuevo archivohttps.conf
.
ejemplo .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
Evite confirmar un archivo de configuración que contenga su clave privada en el control de código fuente. Una vez comprobada la configuración y confirmado su funcionamiento, almacene la clave privada en Amazon S3 y modifique la configuración para descargarla durante la implementación. Para obtener instrucciones, consulte Almacenamiento seguro de claves privadas en Amazon S3.
En un entorno de instancia única, también debe modificar el grupo de seguridad de la instancia para permitir el tráfico en el puerto 443. El siguiente archivo de configuración recupera el ID del grupo de seguridad con una función de AWS CloudFormation y le agrega una regla.
ejemplo .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
En un entorno de balanceador de carga, el balanceador de carga se configura para el paso a través del tráfico seguro o para descifrar y volver a cifrar en el cifrado integral.
Configuración de HTTPS para Ruby con Passenger
En los tipos de contenedores de Passenger que utilizan Puma como servidor de aplicaciones, debe usar un archivo de configuración y un archivo JSON para habilitar el servidor HTTPS.
Si desea configurar HTTPS para Ruby con Passenger
-
Añada el siguiente fragmento al archivo de configuración, sustituyendo los marcadores de posición de certificado y las claves privadas tal como se indica, y guarde el archivo en el directorio
.ebextensions
del paquete de código fuente. El archivo de configuración realiza las siguientes tareas:-
La clave
files
crea los siguientes archivos en la instancia:/etc/pki/tls/certs/server.crt
-
Crea el archivo de certificado en la instancia. Sustituya
certificate file contents
por el contenido del certificado.nota
YAML usa la sangría uniforme. Utilice el mismo nivel de sangría cuando sustituya el contenido en el archivo de configuración de ejemplo y asegúrese de que el editor de texto utiliza espacios para la sangría, no tabuladores.
Si tiene certificados intermedios, inclúyalos en
server.crt
después del certificado del sitio.-----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 el archivo de clave privada en la instancia. Sustituya
private key contents
por el contenido de la clave privada usada para crear la solicitud del certificado o el certificado autofirmado.
ejemplo Fragmento de código .ebextensions sobre la configuración de HTTPS para 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
Evite confirmar un archivo de configuración que contenga su clave privada en el control de código fuente. Una vez comprobada la configuración y confirmado su funcionamiento, almacene la clave privada en Amazon S3 y modifique la configuración para descargarla durante la implementación. Para obtener instrucciones, consulte Almacenamiento seguro de claves privadas en Amazon S3.
-
-
Cree un archivo de texto y agregue el siguiente JSON al archivo. Guárdelo en el directorio raíz del paquete de código fuente con el nombre
passenger-standalone.json
. Este archivo JSON configura Passenger para usarlo con HTTPS.importante
Este archivo JSON no debe contener ninguna marca de orden de bytes (BOM). De lo contrario, la biblioteca JSON de Passenger no leerá el archivo correctamente y no se iniciará el servicio Passenger.
ejemplo 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" }
En un entorno de instancia única, también debe modificar el grupo de seguridad de la instancia para permitir el tráfico en el puerto 443. El siguiente archivo de configuración recupera el ID del grupo de seguridad con una función de AWS CloudFormation y le agrega una regla.
ejemplo .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
En un entorno de balanceador de carga, el balanceador de carga se configura para el paso a través del tráfico seguro o para descifrar y volver a cifrar en el cifrado integral.