2016-04-07 10 views
-1

Ich versuche, das Äquivalent vonRuby on Rails curl -k -u

curl -u username -k https://my-site.com 

Bisher zu tun habe ich benn http://ruby-doc.org/stdlib-2.1.1/libdoc/net/http/rdoc/Net/HTTP.html folgen. Ich habe versucht:

uri = URI('https://my-site.com') 

Net::HTTP.start(uri.host, uri.port, 
       :use_ssl => uri.scheme == 'https') do |http| 
    request = Net::HTTP::Get.new uri 

    response = http.request request # Net::HTTPResponse object 
end 

Ich erhalte SSL-Fehler. Ich kann es im Terminal einrollen. Nicht sicher, wie ein Passwort und Benutzernamen helfen

req.basic_auth 'user', 'password' 

nicht zu liefern.

Fehler Ich erhalte:

SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed 

Alle Zeiger würde geschätzt.

+1

Wenn Sie SSL-Fehler, wenn es darum, poste sie hier. Das kann das Problem sein –

+0

getan, ich bin ziemlich sicher, ich habe Probleme beim Aufruf der API. curl -u username -k https://my-site.com funktioniert für mich – monika

Antwort

0

Es funktioniert mit cURL, weil die Option -k die Überprüfung des Serverzertifikats überspringt. Sie können ein ähnliches Verhalten mit Net::HTTP erhalten, aber wenn Sie dies zu einer öffentlichen Site machen möchten, müssen Sie die Serverkonfiguration korrigieren.

jetzt -k Verhalten in Ruby zu erhalten, setzen Sie die verify_mode:

Net::HTTP.start(uri.host, uri.port, 
       :use_ssl => uri.scheme == 'https') do |http| 
    http.verify_mode = OpenSSL::SSL::VERIFY_NONE 
    request = Net::HTTP::Get.new uri 
    response = http.request request # Net::HTTPResponse object 
end 
+0

Ich habe das versucht, aber ich konnte es nicht mit meinem Passwort und Benutzernamen arbeiten. Der Endpunkt ist intern und erfordert LDAP-Authentifizierung. Ich endete damit, es zu hacken (curl in meinem Controller mit Anmeldeinformationen extern gezogen). – monika