2011-02-27 5 views
1

사용자 인증을 위해 원격 시스템을 사용하려고합니다. 이 코드 덩어리 내가에서라도에서 실행 응답을 얻을 수 있지만, 내 컴퓨터에 실패 오프 확인 켜기sslv3 경고 Linux에서 Ruby의 Net :: HTTP를 사용하는 잘못된 매개 변수

def create 
    uri = URI.parse('https://ourclient.example.com/') 
    http = Net::HTTP.new(uri.host, uri.port) 
    http.use_ssl = true 
    http.verify_mode = OpenSSL::SSL::VERIFY_NONE 

    request = Net::HTTP::Post.new('/login.jsp') 
    request.set_form_data({'login_name' => params[:login], 'password' => params[:password]}) 
    response = http.request(request) 
    puts "Response BODY: #{response.body.inspect}" 
    end 

가 맥에 경고를 제거한다. 내 컴퓨터에서 http.request는이 예외를 발생시킵니다.

OpenSSL::SSL::SSLError (SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A: sslv3 alert illegal parameter): 
    app/controllers/sessions_controller.rb:16:in `create' 

레일즈없이 IRB를 사용하여 동일한 동작을 얻습니다. 어제 Fedora 14를 새로 설치하고 필요한 개발 도구와 라이브러리를 설치했습니다. 저는 Ruby 1.9.2-p180과 Rails 3.0.4를 사용하고 있습니다. 필자는 필자의 라이브러리를 잘못 구성했을 수도 있다고 생각했지만 (몇 차례 업그레이드 된 Fedora 12가 있었음), 이제는 새로 설치되었습니다.

원격 시스템은 아마도 Microsoft의 IIS이지만, 확실하지 않습니다. 아마 이전 SSL 프로토콜을 사용할 수는 있지만 Google-fu는 주문을 찾을 수 없습니다.

이 문제를 해결하는 데 도움이되는 정보를 알려 주시면 감사하겠습니다. 감사,

크리스

답변

0

서버에서 ssl cert가 어떻게 생성 되었습니까? 자체 서명 또는 CA 서명? VERIFY_NONE을 제거하면 나타나는 오류는 무엇입니까?

+0

보십시오. 경고 :이 SSL 세션에서 피어 인증서가 확인되지 않습니다. – Chris

+0

인증서가 Oracle Wallet Manager로 생성 된 다음 서명 기관인 Verisign이 서명했습니다. – Chris

+0

문제가 ssl 인증서에 있거나 CN이 올바르지 않다고 가정합니다. 다른 것을 가지고 시험해 보셨습니까? 유효한 ssl-cert에 대한 코드를 테스트했으며 경고 또는 오류가 표시되지 않습니다 (verify_none 제거). 나는 macosx에있어. – ALoR

0

사용 기계화 보석하기에

gem install mechanize 

내가 서버 SSL 설정에 체크하고있어

require 'mechanize' 
page = Mechanize.new{|a| a.ssl_version, a.verify_mode = 'SSLv3', OpenSSL::SSL::VERIFY_NONE}.get "**YOUR HTTPS LINK HERE**" 
관련 문제