Aenoa Posté 27 Avril 2012 Posté 27 Avril 2012 Bonjour, j'ai tenté d'installer un certificat StartSSL hier, sur mon sous-domaine. j'ai suivi les instructions, et j'obtient une erreur qui drop toute les connexions au serveur si je ne désactive pas le mod ssl et le site en ssl. je stock mes certificats dans le dossier /var/cert, qui est en 777. -rwxrwxrwx 1 root root 2802 Apr 26 18:26 ca.pem -rwxrwxrwx 1 root root 2842 Apr 26 18:23 ssl.crt -rwxrwxrwx 1 root root 3326 Apr 26 18:23 ssl.key -rwxrwxrwx 1 root root 2246 Apr 26 18:26 sub.class1.server.ca.pem Voici le fichier virtualhost: <VirtualHost *:443> ServerName ********* DocumentRoot /home/domaines/****/**** ErrorLog /var/logs/error_log TransferLog /var/logs/access_log SSLEngine on SSLProtocol all -SSLv2 SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM SSLCertificateFile /var/cert/ssl.crt SSLCertificateKeyFile /var/cert/ssl.key SSLCertificateChainFile /var/cert/sub.class1.server.ca.pem SSLCACertificateFile /var/cert/ca.pem SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown CustomLog /var/logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"</VirtualHost> j'ai exécuté ceci, comme demandé sur le site: root_AT_vks*****:/var/cert# openssl rsa -in ssl.key -out ssl.keyEnter pass phrase for ssl.key:writing RSA key au redémarrage d'apache2, j'obtient ceci: root_AT_vks*****:/# /etc/init.d/apache2 restartRestarting web server: apache2 ... waiting Apache/2.2.16 mod_ssl/2.2.16 (Pass Phrase Dialog)Some of your private key files are encrypted for security reasons.In order to read them you have to provide the pass phrases.Server *********:443 (RSA)Enter pass phrase:OK: Pass Phrase Dialog successful.Action 'start' failed.The Apache error log may have more information. failed! Et enfin, le contenu du fichier error_log: [Thu Apr 26 18:27:47 2012] [error] Unable to configure verify locations for client authentication [Thu Apr 26 18:27:47 2012] [error] SSL Library Error: 151441510 error:0906D066:PEM routines:PEM_read_bio:bad end line [Thu Apr 26 18:27:47 2012] [error] SSL Library Error: 185090057 error:0B084009:x509 certificate routines:X509_load_cert_crl_file:PEM l Une quelconque idée de ce que j'ai pu rater ?
Dan Posté 27 Avril 2012 Posté 27 Avril 2012 j'ai exécuté ceci, comme demandé sur le site: root_AT_vks*****:/var/cert# openssl rsa -in ssl.key -out ssl.keyEnter pass phrase for ssl.key:writing RSA key Tu es certain de devoir donner le même fichier pour -in et -out ? Il vaut mieux lancer une commande comme ceci : openssl rsa -in ssl.key -out ssl.nopass.key en repartant sur le bon fichier ssl.key, pas celui que tu as "bidouillé" Là, à mon sens, cette erreur signifie que ta clé privée ne correspond plus à ton certificat. Sinon, es-tu certain qu'il s'agisse d'un certificat classe1 et non un classe2 ? Tu peux essayer en téléchargeant ceci, et en modifiant ton fichier de config : />https://www.startssl.com/certs/sub.class2.server.ca.pem Ou encore ceci : assure-toi que tes fichiers ont bien été téléchargés correctement si tu viens de windows... qu'ils ne contiennent pas de \r\n ! Et dernièrement, que les fichiers se terminent bien avec un \n (newline)
Aenoa Posté 27 Avril 2012 Auteur Posté 27 Avril 2012 Tu es certain de devoir donner le même fichier pour -in et -out ? Il vaut mieux lancer une commande comme ceci : openssl rsa -in ssl.key -out ssl.nopass.key en repartant sur le bon fichier ssl.key, pas celui que tu as "bidouillé" Là, à mon sens, cette erreur signifie que ta clé privée ne correspond plus à ton certificat. je doit donc faire dans le VirtualHost un "SSLCertificateKeyFile /var/cert/ssl.nopass.key" au lieu de "SSLCertificateKeyFile /var/cert/ssl.key" ? Sinon, es-tu certain qu'il s'agisse d'un certificat classe1 et non un classe2 ? Tu peux essayer en téléchargeant ceci, et en modifiant ton fichier de config : https://www.startssl...2.server.ca.pem j'ai juste téléchargé le fichier linké sur sur la page lors de la configuration de tout ce bazar. mais normalement oui, il s'agit bien d'un class 1, qui est gratuit. Je n'ai pas le budget pour un payant =/ Ou encore ceci : assure-toi que tes fichiers ont bien été téléchargés correctement si tu viens de windows... qu'ils ne contiennent pas de \r\n ! Et dernièrement, que les fichiers se terminent bien avec un \n (newline) Comment vérifier cela ? avec un simple nano ? ou un autre moyen ?
Dan Posté 27 Avril 2012 Posté 27 Avril 2012 Je ne sais pas si nano te permettra de voir si tu as des \r (carriage returns) parce que je ne l'utilise pas, mais une commande telle que od -c ssl.key doit te les montrer s'il y en a ! Normalement, en dehors des caractères ASCII, tu ne dois voir que des \n (newlines)
Aenoa Posté 27 Avril 2012 Auteur Posté 27 Avril 2012 plein de choses ainsi pour le ssl.key : 0002240 s O c l E r v 8 0 E 2 S O n i Q0002260 M 8 K C G k C P M 6 m G 0 + + \n0002300 V X H b i P b X H q 7 R Z s s j0002320 2 V J O s M H A P 4 F d 1 i v /../..0003240 O G H W W 5 0 n d j B / F x 0 H0003260 g E o v 5 P V D C T Y W U o k P je suppose donc que c'est bon, je doit vérifier pour chaque fichier ?
Dan Posté 27 Avril 2012 Posté 27 Avril 2012 La fin de ton certificat devrait, avec "od -c ssl.key", se présenter comme ceci (tout ce qui précède -----END ainsi que les valeurs en début de chaque ligne sera différent, bien sûr) 0002660 7 \n j V a M a A = = \n - - - - -0002700 E N D C E R T I F I C A T E -0002720 - - - - \n0002725 Ne mets pas le certificat entier ici !!! ... mais il te faut le -----BEGIN CERTIFICATE----- et le -----END CERTIFICATE----- dans le fichier !
Aenoa Posté 27 Avril 2012 Auteur Posté 27 Avril 2012 La fin de ton certificat devrait, avec "od -c ssl.key", se présenter comme ceci (tout ce qui précède -----END ainsi que les valeurs en début de chaque ligne sera différent, bien sûr) 0002660 7 \n j V a M a A = = \n - - - - -0002700 E N D C E R T I F I C A T E -0002720 - - - - \n0002725 Voici le résultat pour ssl.key : 0000000 - - - - - B E G I N R S A P0000020 R I V A T E K E Y - - - - - \n0000040 P r o c - T y p e : 4 , E N C0006320 U 2 z X v 0 3 f k / K M p N 4 \n0006340 - - - - - E N D R S A P R I0006360 V A T E K E Y - - - - - \n0006376 et pour ssl.nopass.key: 0000000 - - - - - B E G I N R S A P0000020 R I V A T E K E Y - - - - - \n0000040 M I I J K Q I B A A K C A g E A0006320 U 2 z X v 0 3 f k / K M p N 4 \n0006340 - - - - - E N D R S A P R I0006360 V A T E K E Y - - - - - \n0006376
Dan Posté 27 Avril 2012 Posté 27 Avril 2012 Ca semble bon ! Assure toi de la même chose pour le certificat et le certificat CA (chain certificate) ! Tu peux aussi vérifier si le certificat et la clé privée ont le même MD5 : openssl x509 -noout -modulus -in certificate.crt | openssl md5openssl rsa -noout -modulus -in privateKey.key | openssl md5
Aenoa Posté 27 Avril 2012 Auteur Posté 27 Avril 2012 les 3 fichiers disposent du même MD5 (ssl.key, ssl.nopass.key et ssl.crt) concernant les \n et \n\r, je n'ai que des \n dans l'emsemble des fichiers (ca.pem et sub.[...].pem compris). je ne comprends pas pourquoi cela déconne =/
Dan Posté 27 Avril 2012 Posté 27 Avril 2012 Dans ce cas, tes fichiers sont bons, et la clé privée colle avec le certificat ! Re-vérifie les permissions sur les fichiers et sur leur chemin d'accès. Donne-leur l'utilisateur apache (ou www-data selon ton installation) et des permissions en 644. Tu as bien apache compilé avec ssl ? Vérifie avec : httpd -l | grep ssl
Aenoa Posté 27 Avril 2012 Auteur Posté 27 Avril 2012 Dans ce cas, tes fichiers sont bons, et la clé privée colle avec le certificat ! Re-vérifie les permissions sur les fichiers et sur leur chemin d'accès. Donne-leur l'utilisateur apache (ou www-data selon ton installation) et des permissions en 644. Tu as bien apache compilé avec ssl ? Vérifie avec : httpd -l | grep ssl voici le retour de commande: root_AT_vks*****:/var# chmod 644 -R cert/ root_AT_vks***** :/var# chown www-data -R cert/ root_AT_vks***** :/var# httpd -l | grep ssl -bash: httpd: command not found A noter que apache2 tourne sans soucis avec mod_ssl actif, c'est quand j'active le virtualhost qu'il me génère une erreur.
Dan Posté 28 Avril 2012 Posté 28 Avril 2012 Avec ton chmod en 644, le répertoire /var/cert doit avoir des permissions 644 lui aussi. Donc le répertoire n'est plus "searchable" ! Lance un "chmod 755 /var/cert" (ou 711, mais sans le "-R")
Aenoa Posté 28 Avril 2012 Auteur Posté 28 Avril 2012 Avec ton chmod en 644, le répertoire /var/cert doit avoir des permissions 644 lui aussi. Donc le répertoire n'est plus "searchable" ! Lance un "chmod 755 /var/cert" (ou 711, mais sans le "-R") C'est fait, mais l'erreur persiste. root_AT_vks*****:/var/cert# ls -altotal 32drwx--x--x 3 www-data root 4096 Apr 27 18:02 .drwxr-xr-x 16 root root 4096 Apr 26 18:22 ..-rw-r--r-- 1 www-data root 2803 Apr 27 18:02 ca.pemdrw-r--r-- 2 www-data root 4096 Apr 27 18:02 old-rw-r--r-- 1 www-data root 2841 Apr 27 18:01 ssl.crt-rw-r--r-- 1 www-data root 3326 Apr 27 17:59 ssl.key-rw-r--r-- 1 www-data root 3243 Apr 27 17:59 ssl.nopass.key-rw-r--r-- 1 www-data root 2246 Apr 27 18:02 sub.class1.server.ca.pem dossier en 711 (non-recursive) et fichiers en 644. l'erreur, elle n'a pas changée : [Sat Apr 28 10:40:23 2012] [error] Unable to configure verify locations for client authentication[Sat Apr 28 10:40:23 2012] [error] SSL Library Error: 151441510 error:0906D066:PEM routines:PEM_read_bio:bad end line[Sat Apr 28 10:40:23 2012] [error] SSL Library Error: 185090057 error:0B084009:x509 certificate routines:X509_load_cert_crl_file:PEM lib
Dan Posté 28 Avril 2012 Posté 28 Avril 2012 C'est la première ligne d'erreur qu'il faut regarder... et dans ce cas, Google est ton ami />https://www.google.fr/#hl=fr&safe=off&sclient=psy-ab&q=%22Unable+to+configure+verify+locations+for+client+authentication%22&oq=%22Unable+to+configure+verify+locations+for+client+authentication%22&aq=f&aqi=g-L1g-mL1g-vL2&aql=&gs_nf=1&gs_l=serp.12..0i19j0i5i19j0i15i19l2.10120.11506.0.13879.2.2.0.0.0.0.202.326.0j1j1.2.0.GfyrnfsaMdE&pbx=1&bav=on.2,or.r_gc.r_pw.r_qf.,cf.osb&fp=c606afcf303824ff&biw=1244&bih=807
Aenoa Posté 28 Avril 2012 Auteur Posté 28 Avril 2012 d'après eux, il faut commenter " SSLCACertificateFile " mais je me ramasse une autre erreur: [sat Apr 28 20:14:09 2012] [error] Failed to configure CA certificate chain!
Aenoa Posté 28 Avril 2012 Auteur Posté 28 Avril 2012 Pour résumer: test #1 : commenter le SSLCACertificateFile <VirtualHost *:443> ServerName ********* DocumentRoot /home/domaines/******** ErrorLog /var/logs/error_log TransferLog /var/logs/access_log SSLEngine on SSLProtocol all -SSLv2 SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM SSLCertificateFile /var/cert/ssl.crt SSLCertificateKeyFile /var/cert/ssl.nopass.key SSLCertificateChainFile /var/cert/sub.class1.server.ca.pem# SSLCACertificateFile /var/cert/ca.pem SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown CustomLog /var/logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"</VirtualHost> Erreur: [Sat Apr 28 20:45:17 2012] [error] Failed to configure CA certificate chain! --- test #2 : changer SSLCACertificateFile pour SSLCACertificateChainFile <VirtualHost *:443> ServerName ********* DocumentRoot /home/domaines/******** ErrorLog /var/logs/error_log TransferLog /var/logs/access_log SSLEngine on SSLProtocol all -SSLv2 SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM SSLCertificateFile /var/cert/ssl.crt SSLCertificateKeyFile /var/cert/ssl.nopass.key SSLCertificateChainFile /var/cert/sub.class1.server.ca.pem SSLCACertificateChainFile /var/cert/ca.pem SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown CustomLog /var/logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"</VirtualHost> Erreur: [Sat Apr 28 20:46:47 2012] [error] Failed to configure CA certificate chain! --- test #3 : tout décommenter <VirtualHost *:443> ServerName ********* DocumentRoot /home/domaines/******** ErrorLog /var/logs/error_log TransferLog /var/logs/access_log SSLEngine on SSLProtocol all -SSLv2 SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM SSLCertificateFile /var/cert/ssl.crt SSLCertificateKeyFile /var/cert/ssl.nopass.key SSLCertificateChainFile /var/cert/sub.class1.server.ca.pem SSLCACertificateFile /var/cert/ca.pem SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown CustomLog /var/logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"</VirtualHost> Erreur: [Sat Apr 28 20:48:41 2012] [error] Unable to configure verify locations for client authentication[Sat Apr 28 20:48:41 2012] [error] SSL Library Error: 151441510 error:0906D066:PEM routines:PEM_read_bio:bad end line[Sat Apr 28 20:48:41 2012] [error] SSL Library Error: 185090057 error:0B084009:x509 certificate routines:X509_load_cert_crl_file:PEM lib ------- l'entièreté des messages abordés sur le net sont donc erronés pour mon cas de figure... ou alors je suis vraiment manchot é_è' A noter: je n'ai aucune directive autre dans les fichiers de configuration, dans le ports.conf il y a juste "listen 443" en IfModule mod_ssl
Message populaire. Dan Posté 29 Avril 2012 Message populaire. Posté 29 Avril 2012 Il faut concaténer le certificat et la clé dans un même fichier. 1
Aenoa Posté 29 Avril 2012 Auteur Posté 29 Avril 2012 Ils parlent d'un "intermediate.crt" que je n'ai pas... même dans /etc/ssl/certs/ je n'ai que ces deux là en relation avec StartSSL et ce ne sont pas des .crt StartCom_Certification_Authority.pem StartCom_Ltd..pem
Aenoa Posté 29 Avril 2012 Auteur Posté 29 Avril 2012 Le problème a été résolu grâce à l'aide de Dan Il faut, lors de l'installation du SSL, télécharger les certificats (ROOT, CA) du provider, ainsi que le certificat (.crt) et clé (.key) liées a notre (sous-)domaine. ensuite, créer une copie du fichier .key (nommé domaine.pem par exemple) et y ajouter le fichier .crt a la suite. on fais pointer tout ça correctement et ça redémarre sans erreur, ssl actif pour le (sous-)domaine ! encore merci à toi, Dan. Sans toi, je n'y serais jamais arrivé, et grâce à tes explications, je peut le reproduire facilement
Dan Posté 29 Avril 2012 Posté 29 Avril 2012 Comme je te le disais par MP, l'installation d'un certificat SSL est toujours un peu galère la première fois qu'on se lance. Et les informations qu'on trouve sur le net sont souvent contradictoires Si d'autres membres sont dans la même galère, voici une page avec des informations correctes : http://technique.arscenic.org/ssl-securisation-des/article/startssl-utiliser-un-certificat
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant