Connessione client con ssl (wrap_socket)
« il: Luglio 04, 2011, 16:04 »
Salve a tutti, sono un nuovo utilizzatore di python e da poco sto facendo dei test creando un piccolo server che riceve informazioni da diversi client.
L'idea era quella di utilizzare ssl, quindi usando sul client:
self.sock = ssl.wrap_socket(sock, certfile = "ca/certs/myfriend.cert.pem", keyfile = "ca/private/myfriend.key.pem", ca_certs="ca/certs/cacert.pem", cert_reqs=ssl.CERT_REQUIRED)

Utilizzando come client la stessa macchina del server non ho problemi, andando su un'altra macchina (creandole un certificato proprio), ho l'output:
[codice]Traceback (most recent call last):
  File "loginsender.py", line 48, in <module>
    handle = url_opener.open('https://debian.andrea.it:10700/%s+%s' % (DATA,IPIN))
  File "/usr/lib/python2.6/urllib2.py", line 391, in open
    response = self._open(req, data)
  File "/usr/lib/python2.6/urllib2.py", line 409, in _open
    '_open', req)
  File "/usr/lib/python2.6/urllib2.py", line 369, in _call_chain
    result = func(*args)
  File "loginsender.py", line 33, in https_open
    return self.do_open(self.specialized_conn_class, req)
  File "/usr/lib/python2.6/urllib2.py", line 1145, in do_open
    raise URLError(err)
urllib2.URLError: <urlopen error [Errno 185090050] _ssl.c:328: error:0B084002:x509 certificate routines:X509_load_cert_crl_file:system lib>[/codice]
Il problema credo sia dovuto ad ssl ed in particolare alla linea ca_certs, per cui ho provato a dare diversi path ed a spostare anche il mio cacert senza risultati. Leggendo la documentazione, forse va a ricercare i certificati in /etc/ssl o /usr/share/ca-certificates, ma provando a spostare i miei certificati, o a cambiare la configurazione di openss.cnf non ottengo risultati.
Avete dei consigli?

Grazie.
Saluti.