4

我正在尝试使用带有证书的 Web 服务,通过带有相互身份验证的 SSL 发送 XML/SOAP。我试过savonand net/http,但我因同样的错误而停止:

SSL_CTX_use_PrivateKey:键值不匹配(HTTPI::SSLError)

网络/http

uri = URI.parse('https://homologacao.sefaz.mt.gov.br/nfews/v2/services/NfeStatusServico2?wsdl')
pem = File.read("cert/cert.pem")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.cert = OpenSSL::X509::Certificate.new(pem)
http.key = OpenSSL::PKey::RSA.new(pem)
http.verify_mode = OpenSSL::SSL::VERIFY_PEER

http.start

萨翁

WSDL_URL = 'https://homologacao.sefaz.mt.gov.br/nfews/v2/services/NfeStatusServico2?wsdl'

client = Savon.client(
   wsdl: WSDL_URL,
   ssl_version: :SSLv3,
   ssl_verify_mode: :peer,
   ssl_cert_file: 'cert/cert.pem',
   ssl_cert_key_file: 'cert/private_key.pem',
 # ssl_cert_key_password: '123456789',
   env_namespace: :soap, 
   namespace_identifier: nil
)

response = client.call(:nfeStatusServicoNF2, message: "test")

有解决办法吗?谢谢!

4

0 回答 0