106 votes

Comment puis-je convertir un fichier de certificat PFX à utiliser avec Apache sur un serveur linux?

Comment puis-je convertir un fichier de certificat PFX à utiliser avec Apache sur un serveur linux?

J'ai créé le PFX à partir des services de certificats Windows. Le PFX contient la totalité de la chaîne de certificats. (Qui est juste une racine et le principal cert, pas d'intermédiaire.)

Conduis-moi, les sages.

192voto

Matej Points 1921

Avec OpenSSL, vous pouvez convertir pfx au format compatible Apache avec les commandes suivantes:

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

La première commande extrait la clé publique dans domain.cer .
La deuxième commande extrait la clé privée dans domain.key .

Mettez à jour votre fichier de configuration Apache avec:

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

98voto

Andron Points 1903

En plus de

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

J'ai également généré un certificat d'autorité de certification (CA):

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

Et inclus dans le fichier de configuration 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>
 

31voto

Michael Ferrante Points 316

Pour que cela fonctionne avec Apache, il nous fallait une étape supplémentaire.

 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
 

La dernière commande décrypte la clé à utiliser avec Apache. Le fichier domain.key devrait ressembler à ceci:

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

3voto

AaronJAnderson Points 278

Pris quelques outillage autour de lui, mais c'est ce que j'ai fini avec.

Généré et installé un certificat sur IIS7. Exporté en tant que fichier PFX à partir de IIS

Convertir pkcs12

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

REMARQUE: lors de la conversion PFX au format PEM, openssl va placer tous les Certificats et la Clé Privée dans un fichier unique. Vous aurez besoin d'ouvrir le fichier dans l'éditeur de Texte et copie de chaque Certificat Et la clé Privée(y compris le point de début/FIN d'états) pour son propre fichier texte et de les enregistrer en tant que certificat.cer, CAcert.cer, privateKey.clé respectivement.

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

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

Ajouté à vhost apache w/ Webmin.

0voto

Simon_Weaver Points 31141

SSLSHopper a un assez approfondie des articles sur le déplacement entre les différents serveurs.

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

Il suffit de choisir le lien, en bas de cette page.

Note: ils ont un convertisseur en ligne qui donne accès à votre clé privée. Ils peuvent sans doute faire confiance, mais il serait préférable d'utiliser la commande OPENSSL (voir également sur ce site) afin de garder la clé privée privé sur votre propre machine.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X