2012-01-08 27 views

Respuesta

165

Con OpenSSL puede convertir a formato compatible con pfj Apache con comandos siguientes:

openssl pkcs12 -in domain.pfx -clcerts -nokeys -out domain.cer 
openssl pkcs12 -in domain.pfx -nocerts -nodes -out domain.key 

primer comando extrae la clave pública a domain.cer.
El segundo comando extrae la clave privada a domain.key.

actualizar el archivo de configuración de Apache con:

<VirtualHost 192.168.0.1:443> 
... 
SSLEngine on 
SSLCertificateFile /path/to/domain.cer 
SSLCertificateKeyFile /path/to/domain.key 
... 
</VirtualHost> 
+0

Esta falta la orden de generar el archivo de la autoridad de certificación. La respuesta a continuación es más completa. – Hawkee

+0

Esto también funciona en Windows. +1 me salvó el culo – craigmoliver

3

tomó algunas dando vueltas, pero esto es lo que terminó con.

Generado e instalado un certificado en IIS7. exportan como PFX desde IIS

Convertir a pkcs12

openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes 

NOTA: Si bien la conversión a formato PFX PEM, openssl pondrá toda la clave privada y certificados en un solo archivo. Necesitará abrir el archivo en el editor de texto y copiar cada certificado & clave privada (incluidas las instrucciones BEGIN/END) en su propio archivo de texto individual y guardarlas como certificate.cer, CAcert.cer, privateKey.key respectivamente.

-----BEGIN PRIVATE KEY----- 
Saved as certificate.key 
-----END PRIVATE KEY----- 

-----BEGIN CERTIFICATE----- 
Saved as certificate.crt 
-----END CERTIFICATE----- 

Agregado a apache vhost w/Webmin.

+0

Si no desea que la clave privada y los certificados terminen en el mismo archivo, use '-nokeys' (no para extraer la clave privada) y' -clcerts' (para extraer solo el certificado). Esto es exactamente lo que dijo Matej. – Bruno

+0

Bruno, gracias. Le daré la respuesta correcta. Bueno saber. – AaronJAnderson

26

Para que funcione con Apache, necesitábamos un paso adicional.

openssl pkcs12 -in domain.pfx -clcerts -nokeys -out domain.cer 
openssl pkcs12 -in domain.pfx -nocerts -nodes -out domain_encrypted.key 
openssl rsa -in domain_encrypted.key -out domain.key 

El último comando descifra la clave para usar con Apache. El archivo domain.key debe tener el siguiente aspecto:

-----BEGIN RSA PRIVATE KEY----- 
MjQxODIwNTFaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3 
LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxp 
YWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEG 
A1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgp 
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQq 
-----END RSA PRIVATE KEY----- 
+0

AGRADABLE! Para Bitnami u otras personas que también necesiten CArtrt, mire la respuesta de Andron para incluir el CA crt. Utilice la nomenclatura server-ca.crt (en lugar de domain-ca.crt en la respuesta de Andron), y server.crt (en lugar de domain.cer), y server.key (en lugar de domain.key) en Michael Ferrante's responde aquí – OldGreg

0

SSLSHopper tiene algunos artículos bastante detallados sobre el traslado entre diferentes servidores.

http://www.sslshopper.com/how-to-move-or-copy-an-ssl-certificate-from-one-server-to-another.html

Sólo tiene que elegir el enlace correspondiente en la parte inferior de esta página.

Nota: tienen un convertidor en línea que les da acceso a su clave privada. Probablemente se pueda confiar en ellos, pero sería mejor usar el comando OPENSSL (que también se muestra en este sitio) para mantener la clave privada privada en su propia máquina.

78

Adicionalmente a

openssl pkcs12 -in domain.pfx -clcerts -nokeys -out domain.cer 
openssl pkcs12 -in domain.pfx -nocerts -nodes -out domain.key 

También generada autoridad de certificación (CA) Certificado:

openssl pkcs12 -in domain.pfx -out domain-ca.crt -nodes -nokeys -cacerts 

y la incluyó en el archivo de configuración de Apache:

<VirtualHost 192.168.0.1:443> 
... 
SSLEngine on 
SSLCertificateFile /path/to/domain.cer 
SSLCertificateKeyFile /path/to/domain.key 
SSLCACertificateFile /path/to/domain-ca.crt 
... 
</VirtualHost> 
+5

Nota: si el certificado ca estará vacío, no incluya esta línea en el archivo de configuración. – Andron

+6

Creo que esta es la mejor respuesta porque es más completa. – Hawkee

+2

Esto debe marcarse como la respuesta correcta. –

Cuestiones relacionadas