无法使用其证书从客户端向服务器发送请求并使用 Python 进行 SOAP API 调用

问题描述 投票:0回答:1

我正在尝试发送请求并尝试在客户端和服务器之间建立连接。我将证书转换为 .pem 文件,并将 .pem 文件中的私钥保存到另一个以 -----BEGIN PRIVATE KEY----- ... -----END PRIVATE KEY--- 开头的文件中-- 并将其保存为 .key 文件。然后我将证书文件的私钥添加到服务器证书 .pem 文件中。我认为通过这样做,客户端和服务器之间的连接将会建立。我收到了 200 但没有得到任何回复..请帮忙

    import json
    import requests
    clientCrt = "path to client certificate\\ce.crt"
    certificate_secret = "path to client's private key\\pkey.key"
    url = "api_end_point_url"
    certServer = "path to server certificate\\serv.pem"
    headers = {'Content-Type': 'text/xml; charset=utf-8'}
    payload = """<?xml version="1.0" encoding="UTF-8" standalone="no"?><soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ns="...">
   <soap:Header/>
<soap:Body>
<ns:OrigXARequest>
<Request>
.....
</Request>
</ns:OrigXARequest>
</soap:Body>
</soap:Envelope>"""

    response = requests.get(url, data=payload, verify = certServer,
                        headers=headers, cert=(clientCrt,certificate_secret))
    print(response.status_code)
    print(response.content)
    print(response.text)`



输出

200
    b'<?xml version = "1.0" encoding = "UTF-8"?><soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soap:Body><soap:Fault xsi:type="soap:Fault"><faultcode>RTL-API-1002</faultcode><faultstring>Error occurred while invoking the .. Web Service.</faultstring></soap:Fault></soap:Body></soap:Envelope>'

Process finished with exit code 0
python python-requests ssl-certificate soap-client client-certificates
1个回答
0
投票

是的,我能够解决我的问题。问题不在于客户端证书或服务器证书。我没有收到任何响应,因为请求发送到了错误的 SOAP 地址。一旦我更正了地址,我的代码就可以工作了。谢谢大家。

© www.soinside.com 2019 - 2024. All rights reserved.