Le Blog du Geek Joyeux

Plus moins vite tu codes, moins plus vite ça plante

Erreur SSL et Ruby sur Mac

| Commentaires

Pour gérer les différentes versions de Ruby sur mon mac, j’utilise chruby. En ce qui concerne l’installation de Ruby, je me repose sur ruby-install.

Du coup je me suis retrouvé confronté à un petit souci bien connu des rubyists, la fameuse erreur SSL :

OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

Cette erreur est, semble-t-il réglée dans rvm et rbenv. Toujours est-il que de mon côté ça n’est pas le cas.

Il existe un certain nombre de solutions proposées sur StackOverflow. Celle qui me satisfait le mieux est la suivante.

Déterminer le certificat par défaut

OpenSSL recherche un certificat par défaut pour effectuer ses vérifications. Pour savoir où il va le chercher, il suffit d’appeler le code suivant :

1
2
puts OpenSSL::X509::DEFAULT_CERT_FILE
#=> "/usr/local/etc/openssl/cert.pem"

Un test rapide m’a permis de voir que le fichier était effectivement absent de mon système.

Pour corriger cela, j’ai suivi une pratique assez courante qui est d’utiliser le certificat cacert.pem utilisé par Mozilla.

sudo curl -fsSL curl.haxx.se/ca/cacert.pem -o /usr/local/etc/openssl/cert.pem

Cette commande télécharge le certificat et le place au bon endroit (pour moi).

Pour tester que tout fonctionne bien :

ruby -rnet/https -e "Net::HTTP.get URI('https://google.com')"

Commentaires