2017-09-12 7 views
2

Hier meine einfache Klasse, um über HTTPS einen Webservice mit PEM-Zertifikat anzufordern.HTTP-Request mit PEM-Zertifikat

require [omit verbose] 

class Api 

    def initialize 
     @ctx = OpenSSL::SSL::Context::Client.new 
     @ctx.private_key = "/home/XXXXXX/development.pem" 
     @ctx.verify_mode = LibSSL::VerifyMode::NONE 
    end 

    def customers 
     response = HTTP::Client.get "https://XXX.XXX.XXX.XXX:XXXX/api/customers", nil, nil, @ctx 
     puts response.status_code 
     puts response.body 
     puts response.inspect 
     nil 
    end 

end 

Api.new.customers 

Aber ich erhalte nur eine 401 Autorisierung erforderlich mit Kristalllauf src/api.cr.

+0

Deaktivieren sollte nicht notwendig sein. Wenn die Zertifizierungsstelle nicht im Systempaket enthalten ist, sollte sie explizit im Kontext festgelegt werden. –

Antwort

3

Sie müssen auch certificate_chain setzen.

diese Zeile in initialize Methode Add Überprüfung

@ctx.certificate_chain = "/home/XXXXXX/development.pem"