Por lo tanto, las aplicaciones vinculadas con openssl usan PEM, y Windows generalmente usa PKCS12, pero no me parece que exista mucho .DER: qué software de servidor usa DER ?
Por lo tanto, las aplicaciones vinculadas con openssl usan PEM, y Windows generalmente usa PKCS12, pero no me parece que exista mucho .DER: qué software de servidor usa DER ?
No puedo pensar en ninguna.
No recuerdo ningún software que espere DER y rechace PEM. Por lo general, aceptaron ambos.
Windows trata DER con un poco de preferencia. El asistente "Exportar certificado" se establece de forma predeterminada en DER.
Aparte de eso, Windows hace poca distinción. DER y single-pubkey-PEM comparten las extensiones de nombre de archivo .CER
y .CRT
.
Windows trata los archivos de paquetes PEM de múltiples componentes de manera muy deshonesta. Solo muestra el primer objeto en un paquete PEM y no da ninguna indicación de que haya más dentro. Muy engañoso. (Entonces, si desea agrupar estos objetos criptográficos, realmente tiene que usar PKCS # 12 / .PFX
, como ha dicho).
Actualización 2015-12-18Fr
Aquí hay un pequeño fragmento de código con respecto a las extensiones de nombre de archivo. Esto es de mi PC Win10:
C:\>assoc .der
.der=CERFile
C:\>ftype CERFile
CERFile=%SystemRoot%\system32\rundll32.exe cryptext.dll,CryptExtOpenCER %1
C:\>assoc | findstr /I cerfile
.cer=CERFile
.crt=CERFile
.der=CERFile
Creo que esto significa que a Windows realmente no le importa qué extensión de nombre de archivo use aquí. Creo que puedes mezclar y combinar libremente de esos tres, independientemente de los contenidos reales. (No le notifica si un archivo .DER
realmente tiene contenido de PEM. Acabo de verificar).
Sidenote: más extensiones de nombre de archivo criptográfico de Windows
Este cryptex.dll
también abre otros archivos criptográficos:
C:\>ftype | findstr /I cryptext
CATFile=%SystemRoot%\system32\rundll32.exe cryptext.dll,CryptExtOpenCAT %1
CERFile=%SystemRoot%\system32\rundll32.exe cryptext.dll,CryptExtOpenCER %1
CertificateStoreFile=%SystemRoot%\system32\rundll32.exe cryptext.dll,CryptExtOpenSTR %1
CRLFile=%SystemRoot%\system32\rundll32.exe cryptext.dll,CryptExtOpenCRL %1
P7RFile=%SystemRoot%\system32\rundll32.exe cryptext.dll,CryptExtOpenP7R %1
P7SFile=%SystemRoot%\system32\rundll32.exe cryptext.dll,CryptExtOpenPKCS7 %1
PFXFile=%SystemRoot%\system32\rundll32.exe cryptext.dll,CryptExtOpenPFX %1
SPCFile=%SystemRoot%\system32\rundll32.exe cryptext.dll,CryptExtOpenPKCS7 %1
Y estos tipos de archivos corresponden a esta lista de extensiones:
C:\>assoc | sort | findstr /I "catfile cerfile certificatestorefile crlfile p7rfile p7sfile pfxfile spcfile"
.cat=CATFile
.cer=CERFile
.crl=CRLFile
.crt=CERFile
.der=CERFile
.p12=PFXFile
.p7b=SPCFile
.p7r=P7RFile
.p7s=P7SFile
.pfx=PFXFile
.spc=SPCFile
.sst=CertificateStoreFile
.wbcat=wbcatfile
De forma predeterminada, los archivos OpenSSL se crean en formato de correo de privacidad mejorada (PEM). Los archivos SSL que se crean en los entornos operativos de Windows se crean en el formato de Reglas de codificación distinguida (DER). Bajo Windows, puede importar un archivo que se crea en formato PEM o DER. Sin embargo, un certificado digital que se crea en formato DER debe convertirse a formato PEM antes de que pueda incluirse en una lista de confianza en UNIX.
Este es un ejemplo de conversión de un certificado digital de servidor de formato de entrada PEM a formato de salida DER:
OpenSSL> x509 -inform PEM -outform DER -in server.pem -out server.der
Este es un ejemplo de conversión de un certificado digital de servidor de formato de entrada DER a formato de salida PEM:
OpenSSL> x509 -inform DER -outform PEM -in server.der -out server.pem
Lea otras preguntas en las etiquetas tls certificates