Estoy intentando instalar un certificado SSL de GoDaddy en un nuevo equilibrador de carga que estoy configurando en Amazon AWS. Originalmente creé el certificado en Godaddy usando el programa keytool para la instalación directa en un servidor Glassfish 3.1 (Amazon linux ami). No tuve problemas para instalar esa configuración directamente en el servidor. Ahora necesito mover el certificado del servidor web al nuevo balanceador de carga. Amazon requiere que la clave privada y los certificados estén en formato PEM, por lo que utilicé la herramienta "rekey" en GoDaddy para crear nuevos certificados. Cuando los cargo en la pantalla de configuración del equilibrador de carga en la consola de AWS Mgmt, aparece el mensaje de error: "El certificado de clave pública y la clave privada no coinciden".
Así es como estoy creando las claves:
$ openssl genrsa -des3 -out private.key 2048
$ openssl req -new -key private.key -out apps.mydomain.com.csr
Luego envío el archivo .csr a GoDaddy durante el proceso de "reingreso". Una vez que se completa el cambio de clave, descargo los 2 certificados recién creados (apps.mydomain.com.crt & gd_bundle.crt). Los descargo seleccionando (Apache) como tipo de servidor (también he probado "otro" y "Cpanel" pero todos parecen ser iguales).
En este punto, elimino el cifrado del archivo private.key usando el siguiente comando:
$ openssl rsa -in private.key -out private.pem
En este punto, vuelvo a la consola de AWS Mgmt, creo el balanceador de carga, agrego la redirección del servidor seguro y coloco el contenido de los siguientes archivos en los campos respectivos en la pantalla donde solicita configurar el certificado ssl:
private.pem --> Private Key
apps.mydomain.com.crt --> Public Key Certificate
gd_bundle.crt --> Certificate Chain
Cuando hago clic en el "botón continuar", aparece el error "Error: el certificado de clave pública y la clave privada no coinciden".
-¿Hay alguna manera de probar que recibo un mensaje de error válido de Amazon? Me parece extraño que las teclas no coincidan cuando sigo las instrucciones de GoDaddy muy de cerca.
Intenté crear el archivo private.key sin cifrado RSA antes de crear el .csr y eso no parece hacer ninguna diferencia.
También asumo que los archivos .crt que estoy descargando de GoDaddy están en formato .PEM, pero no estoy seguro de cómo verificar esto.
¿Algunas ideas?
Respuestas:
Para mí, fueron dos pasos sencillos:
Convierta la clave privada a PEM:
openssl rsa -in yourdomain.key -outform PEM
Convierta el certificado y el paquete de certificados a PEM :
openssl x509 -inform PEM -in yourdomain.crt
openssl x509 -inform PEM -in bundle.crt
fuente
WARNING: can't open config file: /etc/pki/tls/openssl.cnf
-config
opción. Úselo para especificar la ruta al archivo de configuración que está utilizando.Solo para que conste y para cualquier otra persona que esté tratando de resolverlo:
yourdomain.key -> comando de terminal:
sudo openssl rsa -in yourdomain.key -outform PEM -out yourdomain.pem
-> clave privadatudominio.crt -> clave pública
gd_bundle.crt -> cadena de certificados
y listo :)
fuente
Parece que el problema fue la forma en que estaba copiando el contenido de la clave y los certificados en la consola de administración de AWS. Estaba usando un escritorio de Ubuntu ejecutándose en Virtual Box en un escritorio de Windows 7; copie y pegue los valores de una pantalla de gedit en el navegador que se ejecuta en el cuadro de Windows. Una vez que abrí los archivos de claves y certificados en la misma caja que el navegador web (Windows en este caso), los certificados se aprobaron sin problemas. Supongo que algunas partes del archivo no se reproducen correctamente cuando se usa el portapapeles compartido entre el cliente y el host de Virtual Box. Caso cerrado.
fuente
Encontramos una solución alternativa a este problema. Teníamos los mismos síntomas con el mismo error.
Luego intentamos volver a ingresar los códigos pem una vez más, pero esta vez nos aseguramos de presionar enter una vez y asegurarnos de que el cursor estuviera en una línea en blanco al final de cada ventana. Luego lo salvamos. FUNCIONÓ.
Esto resolvió nuestro problema, por lo que podría resolverlo para otros.
fuente
Una pequeña trampa. Estoy usando una caja de Windows (Win 7 Pro) y cuando usé el puerto de Windows de OpenSSL, los archivos generados tenían caracteres de fin de línea (LF) estilo Unix.
Tuve que convertir el archivo al estilo de Windows (CRLF) para cargar la clave privada.
fuente
Puedo sugerirles una solución alternativa y una información para ustedes. Generalmente, todos los certificados tienen formato de archivo PEM. Puede abrir un bloc de notas o cualquier editor de texto y arrastrar los archivos que recibió en formato de archivo .crt. Que normalmente se llama como archivo .PEM. Si el certificado se cargó en su keytool, puede exportar el certificado como un archivo pfx desde keytool. Luego, puede separar el archivo pfx de la clave privada del archivo pfx. Debido a que el archivo pfx es la combinación de su certificado y la clave privada, puede obtener por separado el archivo de clave privada y usarlo en su amazon aws.
Sospecho que puede haber otra forma de instalar el certificado. Puede ser que pueda comunicarse con la autoridad de certificación y hay alguna forma de obtener su certificado para que se vuelva a emitir.
fuente