Sto solo cercando di capire come usare SSL.Utilizzo di un certificato autofirmato
Ho installato un server Jetty sul mio localhost e generato il mio certificato utilizzando Keytool.
Ora quando vado a https://localhost:8443/ ottengo il non posso fidarmi di questo errore di certificato.
Io uso
keytool -export -alias pongus -keystore chiavi -file certfile.cer
Per creare il certificato che credo sia quello che il cliente ha bisogno di autenticazione con il server. (Questo è dove ho potuto essere molto sbagliato!)
Ho il seguente codice Ruby:
require 'net/https'
require 'openssl'
require 'open-uri'
puts 'yay' if File.exists?('certfile.cer')
uri = URI.parse("https://localhost:8443/")
http_session = Net::HTTP.new(uri.host, uri.port)
http_session.use_ssl = true
http_session.verify_mode = OpenSSL::SSL::VERIFY_PEER
http_session.ca_file = 'certfile.cer'
res = http_session.start do |http|
# do some requests here
http.get('/')
end
Ciò print 'yay', in modo che il file di certfile.cer esiste.
ma ottengo gli errori
/Applications/NetBeans/NetBeans 6.8.app/Contents/Resources/NetBeans/ruby2/jruby-1.4.0/lib/ruby/1.8/net/http.rb:586 warning: can't set verify locations
/Applications/NetBeans/NetBeans 6.8.app/Contents/Resources/NetBeans/ruby2/jruby-1.4.0/lib/ruby/1.8/net/http.rb:586:in `connect': certificate verify failed (OpenSSL::SSL::SSLError)
Tutte le idee che sto facendo male?
EDIT
voglio farlo in modo vi garantisco che sto connessione al server destra, e il server posso garantire che sono io il collegamento ad esso, senza alcuna manomissione in mezzo. Sto sviluppando sia il server che il client.
In ogni caso NON HAI BISOGNO di una chiave privata sul tuo client. Mai e poi mai. Periodo. – lzap
Un'altra cosa.Puoi anche ESPORTARE il certificato usando Firefox o IE! È molto semplice. Accedere alla pagina ed esportarla in un file PEM. Puoi usare quello con Ruby. L'ho fatto diverse volte. Lavori! – lzap
Sbagliato. Semplicemente non capisci l'autenticazione del client SSL, che è ciò che l'interrogante ha dichiarato chiaramente di cui ha bisogno. "... che penso sia ciò che il client ha bisogno di autenticare con il server ..." così come il commento nella modifica indica questo. –