onexão @HTTPS usando o certificado PEM

Estou tentando POSTAR solicitações HTTPS usando um certificado PEM da seguinte forma:

import httplib  
CERT_FILE = '/path/certif.pem'
conn = httplib.HTTPSConnection('10.10.10.10','443', cert_file =CERT_FILE)   
conn.request("POST", "/") 
response = co,nn.getresponse()       
print response.status, response.reason
conn.close()

Tenho o seguinte erro:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.6/httplib.py", line 914, in request
self._send_request(method, url, body, headers)
File "/usr/lib/python2.6/httplib.py", line 951, in _send_request
self.endheaders()
File "/usr/lib/python2.6/httplib.py", line 908, in endheaders
self._send_output()
File "/usr/lib/python2.6/httplib.py", line 780, in _send_output
self.send(msg)
File "/usr/lib/python2.6/httplib.py", line 739, in send
self.connect()
File "/usr/lib/python2.6/httplib.py", line 1116, in connect
self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file)
File "/usr/lib/python2.6/ssl.py", line 338, in wrap_socket
suppress_ragged_eofs=suppress_ragged_eofs)
File "/usr/lib/python2.6/ssl.py", line 118, in __init__
cert_reqs, ssl_version, ca_certs)
ssl.SSLError: [Errno 336265225] _ssl.c:339: error:140B0009:SSL       
routines:**SSL_CTX_use_PrivateKey_file**:PEM lib

Quando removo o cert_file do activationplib, tenho a seguinte resposta:

200 ok

Quando adiciono o cabeçalho de autenticação (conforme recomendado por MattH) com carga útil vazia, ele também funcion

No entanto, quando faço o bom pedido com o Caminho, o Corpo e o Cabeçalho, como segue (simplifiquei ...)

body = '<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">blablabla</S:Envelope>'
URLprov = "/syncaxis2/services/XXXsyncService"
auth_header = 'Basic %s' %  (":".join(["xxx","xxxxx"]).encode('Base64').strip('\r\n'))
conn.request("POST",URLprov,body,{'Authenticate':auth_header})

Tenho 401 Resposta não autorizada!

Como você pode ver, primeiro, fui solicitado a fornecer a PrivateKey! por que eu precisava do PrivateKey se sou um cliente? em seguida, quando removo a PrivateKey e o certificado e coloco o caminho / corpo / cabeçalhos que possuo erro 401 não autorizado com a mensagem WWW-Authenticate: Domínio básico = "Domínio do servidor SYNCNB".

Alguém poderia explicar esse problema? Existe outra maneira de enviar uma solicitação HTTPS usando um certificado em Python?

questionAnswers(3)

yourAnswerToTheQuestion