Connexion à l'aide de https sur un serveur avec un certificat signé par une CA que j'ai créé

J'ai un environnement de test qui utilise Ruby pour la conduite d'un serveur via une connexion https. Depuis les dernières versions de Ruby refuser de se connecter à un serveur https avec un certificat non valide (voir cette question de la mienne) et je voudrais commencer à utiliser une version plus récente de Ruby, je suis en train de mettre en place un certificat valide.

J'ai créé un certificat d'autorité de certification à utiliser (il y a plusieurs serveurs testé si cela semble la façon la plus facile), et ils ont réussi à signer un nouveau certificat qui a été installé sur un serveur et qui est utilisé. J'ai ajouté le certificat d'autorité de certification pour le navigateur store et il (le navigateur) va maintenant se connecter au serveur sans plainte. Je suis donc confiant mes certificats sont valides et mis en place correctement.

Je sais que Ruby ne pas utiliser la même banque que le navigateur. J'ai utilisé le CA de fichier disponible ici pour tester la connexion à d'autres (public) serveurs (défini à l'aide de la Net::HTTP#ca_file= méthode) et cela fonctionne aussi.

Ce que je ne peut pas se rendre au travail est Ruby de la connexion à mon serveur à l'aide de mon certificat. J'ai essayé différentes façons de pointer vers mon certificat (y compris l'ajout de mon certificat dans le fichier ci-dessus) et il donne toujours la même erreur:

SSL_connect SYSCALL returned=5 errno=0 state=SSLv2/v3 read server hello A (OpenSSL::SSL::SSLError)

Que dois-je faire pour convaincre Ruby à accepter mon certificat et se connecter à mon serveur?

Le code que j'utilise est:

require 'net/https'

uri = URI.parse("https://hostname/index.html")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
http.ca_file = "My CA cert file"
request = Net::HTTP::Get.new(uri.path)
response = http.request(request)

Je suppose que c'est mal en quelque sorte. Ce que je veux savoir, c'est, que dois-je faire pour utiliser mon certificat d'autorité de certification?

Vous dites que vous exécutez votre serveur avec Ruby, trop? Pourriez-vous s'il vous plaît poster des extraits de code pertinentes pour le client et le serveur?
le serveur n'est pas Ruby (c'est en fait tomcat bien que je ne pense pas que les questions). Je ne suis pas sûr de ce code que vous souhaitez voir. Je suis juste en utilisant le standard de Ruby https bibliothèque.
coller le code de client que vous utilisez pour vous connecter à votre serveur serait un point de départ.
Ajout d'un code.

OriginalL'auteur Jonathan | 2012-02-07