Я просто пытаюсь понять SSL.
Я настроил сервер Jetty на своем локальном хосте и сгенерировал свой собственный сертификат, используя Кнопочный инструмент.
Теперь, когда я перехожу к https://localhost:8443/, я получаю сообщение об ошибке "Не могу доверять этому сертификату".
я использую
keytool -export -alias pongus -keystore хранилище ключей -file certfile.cer
Чтобы создать сертификат, который, я думаю, нужен клиенту для аутентификации на сервере. (Здесь я могу сильно ошибаться!)
У меня есть следующий рубиновый код:
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
Это печатает «yay», поэтому файл certfile.cer существует.
Но я получаю ошибки
/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)
Любые идеи, что я делаю неправильно?
ИЗМЕНИТЬ
Я хочу получить его, поэтому я гарантирую, что подключаюсь к нужному серверу, а сервер может гарантировать, что это я подключаюсь к нему, без каких-либо промежуточных манипуляций. Я разрабатываю как сервер, так и клиент.