web-dev-qa-db-fra.com

Apache with SSL - Comment convertir des certificats CER en CRT?

Je dois installer le serveur Apache 2 avec SSL.

J'ai mon fichier * .key, mais l'émetteur de mon certificat m'a fourni un fichier * .cer.

Dans toutes les documentations sur le net, elles concernent des certificats * .crt.

Faites-le moi savoir, sont * .cer même chose que * .crt.

Si non, comment puis-je convertir le format CER au format CRT?

99
M.N

Les extensions de fichier pour les certificats cryptographiques ne sont pas aussi normalisées que prévu. Par défaut, Windows traite un double-clic sur un fichier .crt comme une demande d'importation du certificat dans le magasin de certificats racines Windows, mais traite un fichier .cer comme une demande d'affichage du certificat. Ils sont donc différents, du moins en ce sens, que Windows a une signification intrinsèque différente pour ce qui se produit lorsque vous double-cliquez sur chaque type de fichier.

Mais la façon dont Windows les traite en double-cliquant dessus constitue à peu près la seule différence entre les deux. Les deux extensions indiquent simplement qu'il contient un certificat public. Vous pouvez renommer un fichier ou en utiliser un à la place de l'autre dans tout fichier système ou de configuration que j'ai vu. Et sur les plates-formes non Windows (et même sur Windows), les utilisateurs ne font pas très attention à l’extension qu’ils utilisent et les traitent de manière interchangeable, car il n’ya pas de différence entre eux tant que le contenu du fichier est correct.

Pour rendre les choses plus confuses, il existe deux méthodes standard de stockage des données de certificat dans un fichier: l’un est un encodage "binaire" X.509 et l’autre est un encodage base64 "texte" qui commence habituellement par "-----BEGIN CERTIFICATE-----" ". Ceux-ci encodent les mêmes données mais de différentes manières. La plupart des systèmes acceptent les deux formats, mais si vous en avez besoin, vous pouvez convertir l'un vers l'autre via openssl ou d'autres outils. Mais l'encodage dans un fichier de certificat est vraiment indépendant de l'extension que quelqu'un a donnée au fichier.

Si vous avez des questions spécifiques sur la difficulté d'utiliser un type de fichier particulier avec un programme particulier, il est préférable de poser une question distincte décrivant le type de fichier que vous avez et les attentes de votre application.

89
Peter Cooper Jr.

Selon la documentation mod_ssl :

SSLCertificateFile: 
   Name: SSLCertificateFile
   Description: Server PEM-encoded X.509 certificate file

Le fichier de certificat doit être un fichier de certificat X.509 codé PEM:

openssl x509 -inform DER -in certificate.cer -out certificate.pem
53
Dmitry Grigansky

Il existe essentiellement deux types de codage de certificat CER, DER et Base64. Lorsque le type DER retourne un certificat de chargement d'erreur (routines de codage asn1), essayez le PEM et il fonctionnera.

openssl x509 -inform DER -in certificate.cer -out certificate.crt

openssl x509 -inform PEM -in certificate.cer -out certificate.crt

37
Liibo

CER est un certificat X.509 sous forme binaire, DER codé.
CRT est un certificat binaire X.509, encapsulé dans un codage texte (base-64).

Ce n'est pas le même encodage.

32
Spawnrider

Je suppose que vous disposez d'un fichier .cer contenant des données de certificat codées PKCS # 7 et que vous souhaitez le convertir en données de certificat codées PEM (généralement un fichier .crt ou .pem). Par exemple, un fichier .cer contenant des données codées en PKCS # 7 ressemble à ceci:

 ----- ----- BEGIN PKCS7 
 MIIW4gYJKoZIhvcNAQcCoIIW0zCCFs8CAQExADALBgkqhkiG9w0BBwGggha1MIIH 
 ... 
 POI9n9cd2cNgQ4xYDiKWL2KjLB + 6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G 
 + BKhADEA 
 ----- FIN PKCS7 ----- 

Les données du certificat PEM ressemblent à ceci:

 ----- BEGIN CERTIFICATE ----- 
 MIIHNjCCBh6gAwIBAgIQAlBxtqKazsxUSR9QdWWxaDANBgkqhkiG9w0BAQUFADBm 
 ... [.____ n. CERTIFICAT DE FIN ----- 

Il existe une commande OpenSSL qui convertira les fichiers .cer (avec les données PKCS # 7) en données PEM que vous vous attendez à rencontrer (le bloc BEGIN CERTIFICATE dans l'exemple ci-dessus). Vous pouvez contraindre les données PKCS # 7 au format PEM avec cette commande dans un fichier que nous appellerons certfile.cer:

openssl pkcs7 -text -in certfile.cer -print_certs -outform PEM -out certfile.pem

Notez qu'un fichier .cer ou .pem peut contenir un ou plusieurs certificats (éventuellement toute la chaîne de certificats).

29
Karl Ward

La réponse à la question de savoir comment convertir un fichier .cer en fichier .crt (ils sont codés différemment!) Est:

openssl pkcs7 -print_certs -in certificate.cer -out certificate.crt
14
Alexander Presber

Si votre fichier cer a un format binaire, vous devez le convertir par

openssl x509 -inform DER -in YOUR_CERTIFICATE.cer -out YOUR_CERTIFICATE.crt
5
Burak Kalkan

J'utilise la commande:

openssl x509 -inform PEM -in certificate.cer -out certificate.crt

Mais CER est un certificat X.509 sous forme binaire, codé DER. CRT est un certificat binaire X.509, encapsulé dans un codage texte (base 64).

Pour cette raison, vous devriez peut-être utiliser:

openssl x509 -inform DER -in certificate.cer -out certificate.crt

Et puis pour importer votre certificat:

Copiez votre CA dans dir:

/usr/local/share/ca-certificates/

Utilisez la commande:

Sudo cp foo.crt /usr/local/share/ca-certificates/foo.crt

Mettre à jour le magasin de l'autorité de certification:

Sudo update-ca-certificates

5
Hugo L.M

Les fichiers .cer et .crt doivent être interchangeables pour pouvoir les importer dans un magasin de clés.

Regardez le contenu du fichier .cer. Effacer tout ce qui se trouve avant la ligne -----BEGIN CERTIFICATE----- et après la ligne -----END CERTIFICATE-----. Il ne vous restera plus que les lignes BEGIN/END avec un tas de choses encodées en Base64 entre elles.

-----BEGIN CERTIFICATE-----
MIIDQTCCAqqgAwIBAgIJALQea21f1bVjMA0GCSqGSIb3DQEBBQUAMIG1MQswCQYD
...
pfDACIDHTrwCk5OefMwArfEkSBo/
-----END CERTIFICATE-----

Ensuite, importez-le simplement dans votre fichier de clés à l'aide de keytool.

keytool -import -alias myalias -keystore my.keystore -trustcacerts -file mycert.cer
3
CoverosGene