J'ai reçu mon certificat par courrier électronique, puis créé les fichiers nécessaires et les ai copiés. Je suis allé redémarrer mon serveur et j'ai reçu les erreurs suivantes.
[Mer Fév 08 13:02:06 2012] [erreur] Init: Impossible de lire le certificat de serveur à partir du fichier /home/sslcertificates/mydomain.crt [Mer fév 08 13:02:06 2012] [erreur] Erreur de bibliothèque SSL: erreur 218529960: 0D0680A8: routines de codage asn1: ASN1_CHECK_TLEN: balise incorrecte [Mer Fév 08 13:02:06 2012] [erreur] Erreur de bibliothèque SSL: erreur 218595386: 0D07803A: routines de codage asn1: ASN1_ITEM_EX_D2I: erreur asn1 imbriquée
Quelqu'un a-t-il une idée?
Ce message d'erreur est une autre source d'échec possible: À la place du fichier de certificat lié au fichier de demande de certification. Il est reconnaissable lorsque vous lisez la première ligne du fichier: Soit
-----BEGIN CERTIFICATE REQUEST-----
Ou
-----BEGIN CERTIFICATE-----
:-)
Situation: Apache 2.4 utilisant le cert StartSSL générant une erreur de codage ASN
Problème:
AH02564: Failed to configure encrypted (?) private key <domain>.com:80:0, check /etc/pki/tls/certs/ssl.key
Certains émetteurs SSL chiffrent les fichiers de clé SSL par défaut. Assurez-vous donc de le déchiffrer sur le serveur et de le pointer depuis l'hôte virtuel.
Faites simplement écho au fichier de clé pour vous assurer qu'il n'est pas crypté.
Décrypter le fichier clé pour le mod_ssl
openssl rsa -in ssl.key -out ssl.key
Pour la configuration SSL dans la configuration Apache (httpd.conf), ajoutez les configurations suivantes et redémarrez Apache.
# SSL
<VirtualHost *:443>
ServerName gajen.com
SSLCertificateKeyFile /etc/pki/tls/certs/ssl.key
SSLCertificateFile /etc/pki/tls/certs/ssl.crt
SSLCertificateChainFile /etc/pki/tls/certs/root.ca.pem
</VirtualHost>
Pour le dépannage:
tail 50 /var/log/httpd/error_log
tail 50 /var/log/httpd/ssl_error_log
Dans mon cas, les certificats étaient mélangés: SSLCertificateFile avait la clé privée et SSLCertificateKeyFile avait la cert.
En laissant ceci ici car c'est la première recherche Google de l'erreur: Cela peut aussi être causé par l'installation d'un nouveau certificat protégé par phrase secrète et le simple rechargement de la configuration d'Apache (plutôt que de le redémarrer complètement) Le rechargement en lui-même ne générera aucune erreur, mais il ne demandera pas non plus votre phrase secrète et ne pourra pas déchiffrer le certificat.
Pour résoudre ce problème, redémarrez complètement Apache, ce qui vous demandera le mot de passe et vous permettra de le déchiffrer.
Problème résolu avec le fichier * .key recréé et le contenu copié-collé à nouveau.
Ou vous avez besoin avant de désactiver l’ancien mot de passe automatique .
#SSLPassPhraseDialog exec:/etc/ssl/passphrase-script
Récemment, lors de l'installation de SSL dans Apache 2.4, nous avons rencontré la même erreur: "routines de codage asn1".
Nous avions placé tous les fichiers correctement et les avons correctement pointés dans le fichier .conf. Après une journée de problèmes, nous avons réalisé que le problème ne venait pas de la configuration après l'obtention du certificat.
Nous avons créé la demande de signature de certificat (CSR) à l'aide du système intégré de nos fournisseurs. Cela nous a permis de coller la clé que nous avons créée. Le certificat SSL renvoyé par le fournisseur était supposé mapper cette CSR qui a été mappée sur notre clé privée. Apparemment, cela ne correspond pas. Le certificat SSL fourni ne correspond pas à la CSR.
Raison possible La transformation de la clé de la CSR est incorrecte du côté du fournisseur en raison des fins de ligne Unix (\ n au lieu de\r\n)/encodage (ANSI/UTF8)/nouvelles lignes attendues.
Nous avons créé nous-mêmes la RSE à l'aide d'OpenSSL et avons contourné la génération de la RSE par le fournisseur. Ça a marché. Ainsi, dans notre cas, créer la clé et la CSR correspondante à l'aide d'OpenSSL et l'utiliser pour générer le protocole SSL public fonctionnait.
Commande OpenSSL
openssl req -new -sha256 -key ~/site.com.ssl/site.com.key -out ~/site.com.ssl/site.com.csr
J'ai eu ce problème parce qu'on m'a envoyé le contenu d'un fichier .p7b de style IIS collé dans un courrier électronique. Il a les balises "----- BEGIN CERTIFICATE -----" et "----- END CERTIFICATE -----", tout comme .pem, et le contenu utilise un codage base64 similaire. Je l'ai converti en un fichier * .pem comme ceci:
openssl pkcs7 -print_certs -in cert.p7b -out cert.cer
Après cela, Apache 2.2 était heureux.