Aller au contenu

problème SSL


Aenoa

Sujets conseillés

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.key
Enter pass phrase for ssl.key:
writing RSA key

au redémarrage d'apache2, j'obtient ceci:



root_AT_vks*****:/# /etc/init.d/apache2 restart
Restarting 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 ?

Lien vers le commentaire
Partager sur d’autres sites

j'ai exécuté ceci, comme demandé sur le site:


root_AT_vks*****:/var/cert# openssl rsa -in ssl.key -out ssl.key
Enter 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)

Lien vers le commentaire
Partager sur d’autres sites

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 ?

Lien vers le commentaire
Partager sur d’autres sites

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)

Lien vers le commentaire
Partager sur d’autres sites

plein de choses ainsi pour le ssl.key :



0002240 s O c l E r v 8 0 E 2 S O n i Q
0002260 M 8 K C G k C P M 6 m G 0 + + \n
0002300 V X H b i P b X H q 7 R Z s s j
0002320 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 H
0003260 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 ?

Lien vers le commentaire
Partager sur d’autres sites

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 - - - - \n
0002725

Ne mets pas le certificat entier ici !!! ... mais il te faut le -----BEGIN CERTIFICATE----- et le -----END CERTIFICATE----- dans le fichier !

Lien vers le commentaire
Partager sur d’autres sites

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 - - - - \n
0002725

Voici le résultat pour ssl.key :


0000000 - - - - - B E G I N R S A P
0000020 R I V A T E K E Y - - - - - \n
0000040 P r o c - T y p e : 4 , E N C


0006320 U 2 z X v 0 3 f k / K M p N 4 \n
0006340 - - - - - E N D R S A P R I
0006360 V A T E K E Y - - - - - \n
0006376

et pour ssl.nopass.key:


0000000 - - - - - B E G I N R S A P
0000020 R I V A T E K E Y - - - - - \n
0000040 M I I J K Q I B A A K C A g E A


0006320 U 2 z X v 0 3 f k / K M p N 4 \n
0006340 - - - - - E N D R S A P R I
0006360 V A T E K E Y - - - - - \n
0006376

Lien vers le commentaire
Partager sur d’autres sites

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 md5
openssl rsa -noout -modulus -in privateKey.key | openssl md5

Lien vers le commentaire
Partager sur d’autres sites

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 =/

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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")

Lien vers le commentaire
Partager sur d’autres sites

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 -al
total 32
drwx--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.pem
drw-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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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!

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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 :)

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...