amazon web services - pricing - Error de CloudFront al servir a través de HTTPS utilizando SNI
https us east 1 signin aws amazon com (2)
Tuve un problema similar a este y, como sugirió @ Michael-sqlbot, cambié de origen personalizado a S3. Eso no solucionó el problema en sí mismo.
Además de cambiar el origen, Andrew del soporte de AWS dijo que los alias funcionan mejor que los CNAME. He estado usando CNAME. Cuando cambié a los alias (uno para IPv4 y uno para IPv6) funcionó. Aquí está la documentación de Route 53 para CloudFront que muestra cómo configurar alias para CloudFront.
Recientemente, Amazon lanzó una nueva característica en CloudFront que admite certificados SSL personalizados sin costo alguno mediante el uso de SNI (Server Name Indication).
Conseguí que mi distribución se configurara con un certificado de Clase 1 gratuito de StartSSL y todo estaba funcionando cuando me di cuenta de que el sitio desaparecería poco tiempo después de su implementación. La ejecución de SSL Checker devuelve que mi certificado funciona correctamente:
Pero luego accedería a esta página de error cuando intente acceder al sitio a través de HTTPS (funcionaría para la primera solicitud y luego bajaría en intentos posteriores de conexión).
Aquí hay una salida detallada al acceder con ssl (tiene éxito en el índice):
$ curl -I -v -ssl https://wikichen.is
* Adding handle: conn: 0x7f9f82804000
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x7f9f82804000) send_pipe: 1, recv_pipe: 0
* About to connect() to wikichen.is port 443 (#0)
* Trying 54.230.141.222...
* Connected to wikichen.is (54.230.141.222) port 443 (#0)
* TLS 1.2 connection using TLS_RSA_WITH_RC4_128_MD5
* Server certificate: www.wikichen.is (6w984WNu7vM5OrdU)
* Server certificate: StartCom Class 1 Primary Intermediate Server CA
* Server certificate: StartCom Certification Authority
> HEAD / HTTP/1.1
> User-Agent: curl/7.30.0
> Host: wikichen.is
> Accept: */*
>
< HTTP/1.1 200 OK
HTTP/1.1 200 OK
< Content-Type: text/html; charset=utf-8
Content-Type: text/html; charset=utf-8
< Content-Length: 1153
Content-Length: 1153
< Connection: keep-alive
Connection: keep-alive
< Date: Sun, 09 Mar 2014 16:09:54 GMT
Date: Sun, 09 Mar 2014 16:09:54 GMT
< Cache-Control: max-age=120
Cache-Control: max-age=120
< Content-Encoding: gzip
Content-Encoding: gzip
< Last-Modified: Wed, 05 Mar 2014 20:40:48 GMT
Last-Modified: Wed, 05 Mar 2014 20:40:48 GMT
< ETag: "34685bc45353d1030d3a515ddba78f3e"
ETag: "34685bc45353d1030d3a515ddba78f3e"
* Server AmazonS3 is not blacklisted
< Server: AmazonS3
Server: AmazonS3
< Age: 4244
Age: 4244
< X-Cache: Hit from cloudfront
X-Cache: Hit from cloudfront
< Via: 1.1 4f672256eaca5524999342dc8678cdd2.cloudfront.net (CloudFront)
Via: 1.1 4f672256eaca5524999342dc8678cdd2.cloudfront.net (CloudFront)
< X-Amz-Cf-Id: h4TEULH44TCi7m2lL42A8lO-5-Gmx8iY2M2C1AOmRlK543zFN6jCtQ==
X-Amz-Cf-Id: h4TEULH44TCi7m2lL42A8lO-5-Gmx8iY2M2C1AOmRlK543zFN6jCtQ==
<
* Connection #0 to host wikichen.is left intact
Luego falla en otras páginas:
$ curl -i -v https://wikichen.is/writing/index.html
* Adding handle: conn: 0x7fa153804000
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x7fa153804000) send_pipe: 1, recv_pipe: 0
* About to connect() to wikichen.is port 443 (#0)
* Trying 54.230.140.160...
* Connected to wikichen.is (54.230.140.160) port 443 (#0)
* TLS 1.2 connection using TLS_RSA_WITH_RC4_128_MD5
* Server certificate: www.wikichen.is (6w984WNu7vM5OrdU)
* Server certificate: StartCom Class 1 Primary Intermediate Server CA
* Server certificate: StartCom Certification Authority
> GET /writing/index.html HTTP/1.1
> User-Agent: curl/7.30.0
> Host: wikichen.is
> Accept: */*
>
< HTTP/1.1 502 Bad Gateway
HTTP/1.1 502 Bad Gateway
< Content-Type: text/html
Content-Type: text/html
< Content-Length: 472
Content-Length: 472
< Connection: keep-alive
Connection: keep-alive
* Server CloudFront is not blacklisted
< Server: CloudFront
Server: CloudFront
< Date: Sun, 09 Mar 2014 17:54:41 GMT
Date: Sun, 09 Mar 2014 17:54:41 GMT
< Age: 6
Age: 6
< X-Cache: Error from cloudfront
X-Cache: Error from cloudfront
< Via: 1.1 9096435f28f91f92bacdf76122de09ee.cloudfront.net (CloudFront)
Via: 1.1 9096435f28f91f92bacdf76122de09ee.cloudfront.net (CloudFront)
< X-Amz-Cf-Id: iAUOQbP8O4A0pI9KGvVz0VgBT1TW-j0yVDa7vdSvIAuxnKOyQghtnw==
X-Amz-Cf-Id: iAUOQbP8O4A0pI9KGvVz0VgBT1TW-j0yVDa7vdSvIAuxnKOyQghtnw==
<
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>ERROR: The request could not be satisfied</TITLE>
</HEAD><BODY>
<H1>ERROR</H1>
<H2>The request could not be satisfied.</H2>
<HR noshade size="1px">
</BODY></HTML>
<BR clear="all">
<HR noshade size="1px">
<ADDRESS>
Generated by cloudfront (CloudFront)
</ADDRESS>
* Connection #0 to host wikichen.is left intact
</BODY></HTML>%
Me encantaría algunos consejos sobre dónde comenzar a solucionar problemas.
Un representante amable con el nombre de Alastair @ AWS de los foros de AWS CloudFront resolvió esto por mí:
Identifiqué su distribución CloudFront y el segmento S3 como el origen de esta distribución.
Puedo volver a crear y explicar la respuesta intermitente ''502 Bad Gateway'' que está recibiendo.
CloudFront devuelve esta respuesta cuando intenta acceder a una URL utilizando el protocolo HTTPS que actualmente no está en la memoria caché de CloudFront. El motivo de este error es que CloudFront intenta contactar su origen utilizando el protocolo HTTPS, y esto está fallando.
El motivo de esta falla es que ha configurado su origen como un depósito S3, pero está utilizando el tipo "Origen personalizado" y dirigiendo a la URL del sitio web S3 para este depósito. Si intentas acceder a la URL de tu sitio web S3 usando HTTPS, notarás que esto no funciona. El alojamiento web de S3 solo admite la publicación de contenido mediante el protocolo HTTP ( http://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteEndpoints.html#WebsiteRestEndpointDiff ).
Ahora, el comportamiento de carga de página intermitente que está viendo se debe a que CloudFront devuelve las páginas que tiene actualmente en su caché. Debería poder volver a crear este escenario de la siguiente manera:
- Toca una página en tu sitio usando HTTPS. Debería obtener un error ''502 Bad Gateway''.
- Presione la misma página usando HTTP. Deberías ver la página.
- Ve a la página de nuevo usando HTTPS. Ahora debería obtener el resultado esperado, ya que CF ha servido el contenido de su caché en lugar de intentar contactar su origen.
Para resolver este problema, intente lo siguiente:
- Abra la consola de administración de CloudFront y abra su distribución.
- Ve a la pestaña Orígenes, selecciona tu origen y haz clic en "Editar"
- Modifique la "Política de protocolo de origen" a "Solo HTTP".
- Guarde los cambios y espere unos 15 minutos para que el cambio surta efecto.
- Prueba
Mi expectativa es que forzará a CloudFront a contactar su origen usando solo HTTP. He probado esto en mi entorno con un contenedor alojado en el sitio web S3 y puedo cargar contenido con éxito a través de HTTP y HTTPS.
Aquí está el enlace al hilo del foro original .