No se puede agregar la escucha SSL, no se encontró el certificado del servidor para la clave

19

Estoy tratando de configurar SSL en mi equilibrador de carga con un certificado que compré en GoDaddy.

Al intentar cargar el certificado en la consola recibí un error

Error al crear el equilibrador de carga: no se encontró el certificado del servidor para la clave: arn: aws: iam :: ************: certificado-servidor / mycert

Nunca he encontrado este error antes al agregar certificados SSL. No estoy seguro de por qué iamincluso se usa aquí.

Después de buscar en Google, pude cargar mi certificado para iamusar aws cli (de nuevo, no estoy seguro de por qué tuve que hacer esto).

Ahora, al modificar los oyentes, puedo ver mi certificado cargado como un certificado SSL existente. Sin embargo, cuando intento guardar mis cambios en el equilibrador de carga, aparece el mismo error. He verificado que el certificado existe:

$ aws iam list-server-certificates
{
    "ServerCertificateMetadataList": [
        {
            "ServerCertificateId": "*********************", 
            "ServerCertificateName": "mycert", 
            "Expiration": "2018-11-19T18:47:38Z", 
            "Path": "/", 
            "Arn": "arn:aws:iam::************:server-certificate/mycert", 
            "UploadDate": "2015-11-19T19:23:32Z"
        }
    ]
}

(He verificado que el número de cuenta ofuscado aquí es el mismo que en el error)

Desde aquí estoy atrapado. ¿Por qué no puedo aplicar mi certificado a este equilibrador de carga?


Editar jue 19 nov 11:47:18 PST 2015

Después de esperar un tiempo e iniciar sesión y cerrar sesión, pude actualizar a los oyentes con mi certificado SSL. Sin embargo, no parece estar funcionando correctamente. Cuando intento cargar mi dominio durante HTTPSel tiempo de espera de la solicitud. Parece que no puede cargar el certificado

$ echo | openssl s_client -connect www.example.com:443 2>/dev/null | openssl x509 -noout -subject
unable to load certificate
69457:error:0906D06C:PEM routines:PEM_read_bio:no start line:/SourceCache/OpenSSL098/OpenSSL098-52.30.1/src/crypto/pem/pem_lib.c:648:Expecting: TRUSTED CERTIFICATE
Steve Robbins
fuente
1
Los certificados siempre se almacenan en IAM, por lo que parece que llegaste a un retraso de replicación de IAM u otro error donde el certificado parecía estar almacenado bien, pero no estaba allí ... lo que originalmente deberías haber funcionado. ¿El grupo de seguridad ELB está abierto al mundo para HTTPS? Si es así, entonces tiene una segunda anomalía aquí y sugeriría crear un nuevo ELB desde cero y ver si se comporta de manera diferente.
Michael - sqlbot

Respuestas:

30

Me enfrenté al mismo problema al intentar crear el ELB desde la consola web. Estaba tratando de crear un nuevo certificado de carga allí a través de GUI y finalmente estaba fallando con el mismo error. Lo resolví cargando los archivos de certificado por separado a través de aws cli. Se explica en este documento: http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/ssl-server-cert.html#upload-cert

Cargue el certificado, la clave privada y la cadena de certificados como esta

aws iam upload-server-certificate --server-certificate-name my-server-cert \
  --certificate-body file://my-certificate.pem --private-key file://my-private-key.pem \
  --certificate-chain file://my-certificate-chain.pem

Y luego vaya a la consola web y elija la opción "Elegir un certificado existente de AWS Identity and Access Management (IAM)" y elija el par de certificados que acaba de cargar. Funcionará bien después de eso.

suryasankar
fuente
1
Yo tuve el mismo problema. Lo resolvió de la manera que usted describe, utilizando el cliente aws como lo sugiere el enlace que comparte. Usar el formulario web de la consola IAM para pegar la clave, crt y chain NO me funcionó. Instalé el cliente aws en mi máquina de desarrollo, lo configuré con "configuración aws" para agregar credenciales y luego ejecuté el comando aws iam uplad-server-certificate ...
wojjas
GUI me dio problemas, CLI no ... como de costumbre.
Spechal
1
Para una actualización (ahora es 2017), acabo de hablar con soporte de Amazon y esto todavía es un problema conocido. La CLI es la única forma de garantizar que este proceso funcione correctamente. -_-
Nicholas Kreidberg
2
A mediados de 2017 y el problema aún existe.
Diogo Melo
2
Finales de enero de 2018 - fotograma y edición
Andrew S
17

El error es engañoso. Se sube el certificado. Una vez que reciba ese error, salga y vuelva a cambiar. Elija el certificado IAM existente y haga clic en el menú desplegable; debería ver el nuevo certificado allí.

usuario384640
fuente
Esto es lo que me pasó a mí también. Obtuve el error, supuse que eso significaba que el certificado no se cargó, así que intenté nuevamente ... y obtuve un error diferente, indicando que el certificado ya estaba allí. Salir de la interfaz de usuario del "nuevo certificado" y regresar y elegir el certificado que acabo de cargar como certificado "existente" funcionó bien.
coredumperror
1
¡Gracias! Esto es así en mal estado. No puedo creer que no hayan arreglado algo como esto.
navegado el
eso es exactamente correcto
shareef
Esto continúa sucediendo en el flujo de trabajo de carga de certificados ELB IAM, pero lo arreglaron en el flujo de trabajo de carga de certificados ALB IAM.
Josip Rodin
5

Tuve el mismo problema pero afortunadamente logré resolverlo sin tener que presionar la CLI. Obtuve el ELB para agregar un escucha HTTPS pegando la cadena de certificados en el campo de certificado de clave pública , después del certificado en sí.

El error solo se manifestó cuando la cadena de certificados se pegó en su propio cuadro de entrada de cadena de certificados en la consola (marcado como opcional). No estoy seguro de por qué esto marcó la diferencia, pero creó el oyente HTTPS en el ELB y todo fue bueno.

Matthew Long
fuente
Esto funcionó para mí hace un momento con un certificado Comodo DV comprado a través de SSLmate. El problema separado fue que recibí un error justo después de hacer clic en el botón 'enviar' final, que se solucionó al volver a hacer clic en el botón después de unos segundos (¿retraso de propagación de IAM debido a la consistencia eventual?)
RichVel
3

Fue debido a un carácter especial en el Nombre del Certificado:. (Punto) en mi caso. Todo funcionó bien después de eliminar todos los puntos del nombre del certificado

essis
fuente
1
Y también elimine "-" guión
ysrb
2

Acabo de golpear esto también. Intenté cinco veces crear un nuevo ELB y falló cada vez. Nunca intenté la variante API, pero logré configurar el certificado SSL por

  1. Primero creando el ELB; luego
  2. modificando el oyente cambiando de HTTP a HTTPS y cargando mi certificado + clave + intermedios.
Ztyx
fuente
1

Me enfrenté al mismo problema. En mi caso, recibí el error "No se encontró el certificado del servidor para la clave" al cargar un certificado SSL, pero finalmente se cargan y se muestran en el menú desplegable. No recibo ningún error al cargar a través de CLI. Cuando me puse en contacto con el soporte de AWS, me dieron la siguiente razón del error

La razón de que esto ocurra es la consistencia eventual. Los certificados que se cargan se almacenan en IAM. Dado que IAM tiene una base de datos masiva, el certificado cargado debe propagarse a través de todas las bases de datos. Si no hay suficiente tiempo para propagarse, el ELB que está tratando de obtener este certificado no podrá encontrarlo en el punto final que está consultando. Por lo tanto, arroja "Certificado de servidor no encontrado para la clave". Cuando finalmente se propaga, más tarde puede verlo como un certificado ya cargado

Ramadas
fuente
1

Lo solucioné yendo al administrador de certificados en la consola de aws y subiendo allí primero. Luego, use el asistente de equilibrador de carga y seleccione el certificado que cargué.

usuario160004
fuente
En horas extras, subo SSL a AWS y me encuentro con un problema diferente. ¡Esta vez, configurarlo en el Administrador de certificados y luego simplemente usarlo en EC2 Load Balancer funcionó!
user566245
0

El mismo problema aquí cuando uso la interfaz web de AWS: cargué un certificado válido, la clave correcta y la cadena completa, pero obtuve el error mencionado anteriormente.

Traté de subir el certificado a otro equilibrador de carga (prueba). La carga funcionó, pero el estado del oyente dice: "Certificado no válido".

Cuando volví a abrir el cuadro de diálogo "Seleccionar certificado", no se seleccionó ningún certificado. Pero obviamente el certificado se cargó correctamente, porque pude seleccionarlo en la lista de certificados.

Entonces, volviendo a mi equilibrador de carga original, traté de asignar este certificado cargado, cosa extraña ahora: no estaba en la lista. Lo intenté de nuevo y cargué el certificado y su clave, pero omití la cadena de certificados. Esto funcionó, así que sabía que debía ser la cadena, eso no es correcto (es un certificado de comodín). Volví a descargar la cadena de la página oficial, cargué todo el paquete y funcionó. Lo extraño ahora: cuando los comparé a ambos, el corrupto y el nuevo descargado, parecen lo mismo. Las mismas fechas, la misma serie, la misma. Pero diferente.

Larga historia corta: funcionó descargando nuevamente los certificados intermedios.

nr
fuente
0

Tuve este mismo problema y lo que finalmente lo solucionó fue ingresar al Grupo de seguridad para el equilibrador de carga y asegurarme de que el puerto 443 estuviera abierto.

Chris DeGroat
fuente
0

Antes de crear el equilibrador de carga clásico, debe crear una AMI (imagen de su instancia en producción). Con esto, vaya a la configuración de creación del equilibrador de carga y realice el proceso nuevamente y después de esto, los certificados proporcionados y todo irá bien en mi caso.

dbarenas
fuente
0

Eludí esto al no completar el campo opcional de Cadena de certificados .

Danny Schoemann
fuente
0

Tuve el mismo problema si estaba cargando un certificado directamente.

Si utilicé el Administrador de certificados (AWS Certificate Manager - ACM) pude cargar el certificado. Después de eso, simplemente podría seleccionar el certificado en una lista desplegable.

flokoe
fuente