2017-09-12 2 views
2

Voici ma classe simple pour demander via HTTPS un service Web avec le certificat PEM.Requête HTTP avec certificat PEM

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 

Mais je reçois seulement 401 Autorisation requise avec cristal run src/api.cr.

+0

La désactivation de la vérification ne doit pas être nécessaire. Si l'autorité de certification ne figure pas dans l'ensemble du système, il est préférable de la définir explicitement dans le contexte. –

Répondre

3

Vous devez également définir la chaîne de certificat.

Ajouter cette ligne méthode initialize

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