我正在尝试使用带有证书的 Web 服务,通过带有相互身份验证的 SSL 发送 XML/SOAP。我试过savon
and 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")
有解决办法吗?谢谢!