2012-05-24 3 views
0

jiraSOAP와 같은 인증서 확인 기능을 해제하려면 어떻게합니까? 검증은 내장되어 있지만 서버 & 클라이언트가 내 자산이기 때문에 검증을 필요로하지 않습니다. 이 확인을 중지하려면 보석을 조정할 수 있어야합니다.Ruby - jiraSOAP - OpenSSL 인증서 확인을 사용하지 않습니다.

https://github.com/Marketcircle/jiraSOAP/blob/master/lib/jiraSOAP.rb

이 인증서 검증 오류가 내 프로젝트로 이동 중지됩니다. 포럼에서 다른 해결책을 시도하여 /etc/ssl/cert을 업그레이드하고 OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE을 프로젝트에 추가했습니다. 그러나 그들 중 누구도 일하지 않았습니다.

require 'jiraSOAP' 
jira = JIRA::JIRAService.new "https://server/rpc/soap/jirasoapservice-v2?wsdl" 
jira.login username, password 


/usr/local/rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/net/http.rb:799:in `connect': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError) 
+0

을 "* 정말 필요가 없습니다 그 검증은 서버와 클라이언트가 내 속성이기 때문에 * ". 인증서 확인 (호스트 이름 확인과 함께)은 클라이언트가 실제로 의도 한 서버와 통신하고 있는지 확인하는 것입니다. 그들이 당신의 재산이라는 사실은 부적절합니다. 실제로 당신의 * 서버와 실제로 통신하고 있는지 확인하고 싶습니다. – Bruno

답변

0

내 호스트에 대해서만 인증서 검사를 무시하도록 Handsoap 보석을 수정하여 해결할 수있었습니다.

 handsoap-1.1.8/lib/handsoap/http/drivers/net_http_driver.rb 

수정이 새로운 HTTP 클라이언트 후 - -

 http_client = Net::HTTP.new(url.host, url.port) 

이 추가 -

파일은 보석 경로에 수정

 #Added these new lines below 
     if url.host == "server" #ignore cert check only for this host 
     http_client.verify_mode = OpenSSL::SSL::VERIFY_NONE 
     end 
+0

다시 인증서 확인을 무시하지 마십시오. 그것이 당신이 원하는 주인과 이야기하고 있다는 것을 보장합니다. 그렇지 않은 경우 호스트로 이야기 할 수 있습니다. – Bruno

관련 문제