Dans Ruby 2.0.0 et plus, il suffit de passer un objet uri avec une balise https
url est suffisant pour effectuer une demande d'accès HTTPS.
uri = URI('https://encrypted.google.com')
Net::HTTP.get(uri)
Vous pouvez le vérifier en effectuant une requête get sur un fichier de type domaine avec un certificat expiré.
uri = URI('https://expired.badssl.com/')
Net::HTTP.get(uri)
# OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=error: certificate verify failed
Il a été introduit par ce commettre dans Ruby 2.0.0.
Le site get_response
qui est appelée par la méthode Net::HTTP.get
méthode, fixe :use_ssl
à true lorsque le uri.scheme
est "https".
Avertissement : je comprends que la question concerne Ruby 1.8.7, mais comme il s'agit de l'un des premiers résultats de recherche lorsqu'on cherche "https ruby", j'ai décidé de répondre quand même.
0 votes
Pour information, nous nous sommes connectés temporairement à un serveur tiers qui avait des problèmes de certificat et nous avons donc dû utiliser
IO.copy_stream( open( url, { ssl_verify_mode: OpenSSL::SSL::VERIFY_NONE } ), download_path )
pour désactiver la vérification SSL. Dans notre cas, la sécurité n'était pas un problème, le serveur était hors de notre contrôle et il s'agissait d'une solution temporaire.