ssl - crear - diferencia entre crt y cer
¿Cómo obtener el archivo.pem de los archivos.key y.crt? (10)
¿Cómo puedo crear un archivo PEM a partir de un certificado SSL?
Estos son los archivos que tengo disponibles:
.crt
-
server.csr
-
server.key
- Descargar certificado del portal provisional por appleId,
- Exportar certificado desde el llavero y dar nombre (Certificados.p12),
- Abra el terminal y la carpeta goto donde guarda el archivo Certificates.p12 anterior,
Ejecutar los siguientes comandos:
a)
openssl pkcs12 -in Certificates.p12 -out CertificateName.pem -nodes
,b)
openssl pkcs12 -in Certificates.p12 -out pushcert.pem -nodes -clcerts
- Su archivo .pem listo "pushcert.pem".
Además, si no desea que solicite una frase de contraseña, deberá ejecutar el siguiente comando:
openssl rsa -in server.key -out server.key
Al intentar cargar un certificado GoDaddy en AWS, fallé varias veces, pero al final fue bastante simple. No hay necesidad de convertir nada a .pem. Solo debe asegurarse de incluir el certificado de paquete de GoDaddy en el parámetro de cadena, por ejemplo,
aws iam upload-server-certificate
--server-certificate-name mycert
--certificate-body file://try2/40271b1b25236fd1.crt
--private-key file://server.key
--path /cloudfront/production/
--certificate-chain file://try2/gdig2_bundle.crt
Y para eliminar tu anterior carga fallida puedes hacerlo.
aws iam delete-server-certificate --server-certificate-name mypreviouscert
Es posible que sus claves ya estén en formato PEM, pero que solo se nombren con .crt o .key.
Si el contenido del archivo comienza con -----BEGIN
y puede leerlo en un editor de texto:
El archivo utiliza base64, que se puede leer en formato ASCII, no en formato binario. El certificado ya está en formato PEM. Solo cambia la extensión a .pem.
Si el archivo está en binario:
Para el server.crt, usaría
openssl x509 -inform DER -outform PEM -in server.crt -out server.crt.pem
Para server.key, use openssl rsa
en lugar de openssl x509
.
La clave server.key es probablemente su clave privada, y el archivo .crt es el certificado x509 firmado y devuelto.
Si esto es para un servidor web y no puede especificar la carga de una clave privada y pública por separado:
Es posible que necesite concatenar los dos archivos. Para este uso:
cat server.crt server.key > server.includesprivatekey.pem
Recomendaría nombrar archivos con "includesprivatekey" para ayudarlo a administrar los permisos que mantiene con este archivo.
Esta es la mejor opción para crear un archivo .pem.
openssl pkcs12 -in MyPushApp.p12 -out MyPushApp.pem -nodes -clcerts
Estaba tratando de pasar de GoDaddy al motor de aplicaciones. Lo que hizo el truco fue usar esta línea:
openssl req -new -newkey rsa:2048 -nodes -keyout name.unencrypted.priv.key -out name.csr
Exactamente como es, pero reemplazando el nombre con mi nombre de dominio (no es que realmente importara)
Y respondí todas las preguntas relacionadas con el nombre común / organización como www.name.com
Luego abrí el csr, lo copié, lo pegué en go daddy, luego lo descargué, lo descomprimí, navegé a la carpeta descomprimida con el terminal e ingresé:
cat otherfilegodaddygivesyou.crt gd_bundle-g2-g1.crt > name.crt
Luego utilicé estas instrucciones de Problemas con el dominio personalizado de Google Apps SSL , que fueron:
openssl rsa -in privateKey.key -text > private.pem
openssl x509 -inform PEM -in www_mydomain_com.crt > public.pem
exactamente como está, excepto que en lugar de privateKey.key usé name.unencrypted.priv.key, y en lugar de www_mydomain_com.crt, usé name.crt
Luego subí el public.pem a la consola de administración para el "certificado X.509 codificado PEM", y subí el private.pem para la "clave privada RSA codificada PEM sin cifrar" ..
.. y que finalmente funcionó.
Lo que he observado es: si usa openssl para generar certificados, captura tanto la parte de texto como la parte de certificado base64 en el archivo crt. El formato pem estricto dice ( definición de wiki ) que el archivo debe comenzar y terminar con BEGIN y END.
.pem - (Certificado de DER codificado en base a la privacidad) Base64, incluido entre "----- BEGIN CERTIFICATE -----" y "----- END CERTIFICATE -----"
Entonces, para algunas bibliotecas (encontré esto en java) que esperan un formato pem estricto, el crt generado fallará la validación como un ''formato pem no válido''.
Incluso si copia o grep las líneas con BEGIN / END CERTIFICATE, y las pega en un archivo cert.pem, debería funcionar.
Esto es lo que hago, no muy limpio, pero funciona para mí, básicamente filtra el texto a partir de la línea BEGIN:
grep -A 1000 BEGIN cert.crt> cert.pem
Necesitaba hacer esto para un AWS ELB. Después de ser golpeado por el diálogo muchas veces, finalmente esto fue lo que funcionó para mí:
openssl rsa -in server.key -text > private.pem
openssl x509 -inform PEM -in server.crt > public.pem
Gracias NCZ
Edición: como dice @floatingrock
Con AWS, no olvide anteponer el nombre del archivo con el file://
. Así se verá:
aws iam upload-server-certificate --server-certificate-name blah --certificate-body file://path/to/server.crt --private-key file://path/to/private.key --path /cloudfront/static/
http://docs.aws.amazon.com/cli/latest/reference/iam/upload-server-certificate.html
Un archivo pem
contiene el certificado y la clave privada. Depende del formato en que esté su certificado / clave, pero probablemente sea tan simple como esto:
cat server.crt server.key > server.pem
- Terminal abierta.
- Vaya a la carpeta donde se encuentra su certificado.
- Ejecute el comando siguiente reemplazando el nombre con su certificado.
openssl pkcs12 -en YOUR_CERTIFICATE.p12 -out YOUR_CERTIFICATE.pem -nodes -clcerts
- Espero que funcione !!