53 votes

Erreur SSL - Impossible de lire le certificat du serveur à partir du fichier

J'ai configuré le SSL pour mon domaine aujourd'hui, et j'ai rencontré un autre problème - j'espérais que quelqu'un pourrait m'éclairer sur

Je reçois constamment les messages d'erreur suivants :

\[error\] Init: Unable to read server certificate from file /etc/apache2/domain.com.ssl/domain.com.crt/domain.com.crt
\[error\] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1\_CHECK\_TLEN:wrong tag
\[error\] SSL Library Error: 218595386 error:0D07803A:asn1 encoding routines:ASN1\_ITEM\_EX\_D2I:nested asn1 error

J'utilise Apache 2.2.16 et Ubuntu 10.10. Mon fichier .crt contient les balises Begin et End, et a été copié exactement à partir de l'email de confirmation que j'ai reçu, c'est très frustrant !

Santé !

Editer >> Lorsque j'essaie de vérifier le .crt, cela ne semble pas fonctionner :

\>> openssl x509 -noout -text -in domain.com.crt 
unable to load certificate
16851:error:0906D06C:PEM routines:PEM\_read\_bio:no start line:pem\_lib.c:650:Expecting: TRUSTED CERTIFICATE

Également >>

\>> openssl x509 -text -inform PEM -in domain.com.crt
unable to load certificate
21321:error:0906D06C:PEM routines:PEM\_read\_bio:no start line:pem\_lib.c:650:Expecting: TRUSTED CERTIFICATE
    \>> openssl x509 -text -inform DER -in domain.com.crt
unable to load certificate
21325:error:0D0680A8:asn1 encoding routines:ASN1\_CHECK\_TLEN:wrong tag:tasn\_dec.c:1316:
21325:error:0D07803A:asn1 encoding routines:ASN1\_ITEM\_EX\_D2I:nested asn1 error:tasn\_dec.c:380:Type=X509

Editer>> (Au passage, merci pour votre aide)

\>> grep '^-----' domain.com.crt
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----

Je viens d'envoyer un courriel à la société qui fournit le certificat, qui m'a répondu.

J'ai vérifié le fichier CSR que vous avez fourni et je peux vous assurer que qu'il a été correctement généré. L'erreur que vous rencontrez actuellement rencontrez est due au fait que vous utilisez une ligne de commande erronée pour l'installation du CSR. Vous devrez modifier ce domain.com.crt à partir de votre ligne de commande avec l'arobase. ligne de commande avec le nom de votre domaine.

  • actuellement le crt est configuré sur mysite.com.crt - j'ai utilisé domain.com.crt comme exemple

11voto

Froyo_np Points 191

Dans mon cas, j'ai rencontré les erreurs de l'OP parce que la personne qui a créé le fichier .crt pour moi en premier lieu avait vraiment créé un fichier .crt. .PEM et l'a nommé .crt.

J'ai découvert cela en tombant sur le guide utile suivant : https://support.ssl.com/Knowledgebase/Article/View/19/0/der-vs-crt-vs-cer-vs-pem-certificates-and-how-to-convert-them

Je n'ai eu qu'à renommer mon .crt en .pem, et le tour était joué ! Le guide indique que les erreurs de la question de l'OP impliquent que le fichier d'entrée est déjà formaté en PEM, et qu'il est donc impossible d'essayer de le convertir en .pem à partir d'un format DER, et que c'est en fait inutile.

4voto

Dave Points 1

Veillez à ce que votre fichier ne contienne pas d'espace à la fin ou à la fin du fichier de certificat. Assurez-vous soigneusement qu'il n'y a pas d'espaces ou de blancs dans votre fichier de certificat, en sélectionnant l'ensemble du texte et en recherchant les espaces vides dans un éditeur de texte.

Vérifiez également que tous les fichiers configurés existent et sont corrects.

Par exemple : dans votre autre message, vous dites que votre fichier .key s'appelle mon domain.com.crt alors que dans la configuration du serveur virtuel, vous avez domain.com.crt.

SSLCertificateFile /etc/apache2/domain.ssl/domain.ssl.crt/domain.com.crt
SSLCertificateKeyFile /etc/apache2/domain.ssl/domain.ssl.key/domain.com.key
SSLCertificateChainFile /etc/apache2/domain.ssl/ca.crt
SSLCACertificateFile /etc/apache2/domain.ssl/gs_intermediate_ca.crt

Vérifiez à nouveau que tous les fichiers ci-dessus existent réellement et sont valides.

1voto

Josh Points 11

Si quelqu'un d'autre rencontre ce problème et que les journaux d'erreurs d'Apache indiquent quelque chose comme :

Init : Impossible de lire le certificat du serveur dans le fichier /etc/apache2/domaine.com.ssl/domaine.com.crt/domaine.com.crt

Vérifiez que vous n'avez pas interverti les fichiers de clés et de certificats dans les déclarations de la configuration d'Apache. J'avais pointé la clé vers mon fichier de certificat et le certificat vers mon fichier de clé. Ce billet m'a aidé à résoudre le problème mais je voulais le signaler comme un autre problème/solution potentiel.

1voto

ROSE Points 134

Dans mon cas, il s'agit de la présence de la nomenclature dans le fichier. On pourrait le dépouiller comme suit :

tail -c +4 ssl.crt > ssl2.crt

Il n'est pas certain que cela prenne toujours 3 octets, donc la meilleure solution doit être :

vi -c 'se nobomb' -c wq ssl.crt

1voto

Derek Points 111

J'ai rencontré ce problème parce qu'on m'a envoyé le contenu d'un fichier .p7b de type IIS collé dans un courrier électronique. Il comporte des balises "-----BEGIN CERTIFICATE-----" et "-----END CERTIFICATE-----", tout comme le fichier .pem, et son contenu utilise un encodage base64 similaire. Je l'ai converti en fichier *.pem comme suit :

openssl pkcs7 -print_certs -in cert.p7b -out cert.cer

Après cela, Apache 2.2 était heureux.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X