[Python] Problema con sito https
Salve a tutti, è da un po' che sbatto la testa contro questo problema: import urllib2 urllib2.urlopen('https://www.u-gov.sssup.it') [... lungo traceback ...] URLError: urlopen error [Errno 1] _ssl.c:504: error:140773E8:SSL routines:SSL23_GET_SERVER_HELLO:reason(1000) Succede sia con urllib2 che con il fork di urllib2 che mechanize ingloba. Pochissima di esperienza ed un po' più di ricerca su google mi hanno spinto a pensare che fosse un problema con il certificato SSL non trusted, e a fare monkey patching di urllib2 e di ssl come se non ci fosse un domani... ma invece pare che proprio la comunicazione SSL non parta nemmeno se impongo di non fare il check (che peraltro mechanize di default fa, ma urllib2 mi pare ancora di no). Ho provato sia in una debian testing che in una Ubuntu ben più datata, non cambia niente. Ovviamente, la cosa che non capisco è che invece in un browser si apre perfettamente. Qualsiasi illuminazione sarà illuminante! Grazie, Pietro ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] Basic
Parlo del vecchio basic del commodore 64 o dell'Amiga e non del visual della mikrozozz. Ha ancora senso o scopo come linguaggio oggidì? Curiosità del lunedì mattina... Luigi Fontana www.picchiolegno.it ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Problema con sito https
Il 24/03/2014 11:04, Pietro Battiston ha scritto: Succede sia con urllib2 che con il fork di urllib2 che mechanize ingloba. Pochissima di esperienza ed un po' più di ricerca su google mi hanno spinto a pensare che fosse un problema con il certificato SSL non trusted, e a fare monkey patching di urllib2 e di ssl come se non ci fosse un domani... ma invece pare che proprio la comunicazione SSL non parta nemmeno se impongo di non fare il check (che peraltro mechanize di default fa, ma urllib2 mi pare ancora di no). Da qui sembrerebbe che si debba ricompilare con il supporto per ssl. http://stackoverflow.com/questions/2146383/https-connection-python Io pero' tempo fa ho fatto un programmino che si autenticava via https; ho utilizzato requests senza ricompilare niente: http://docs.python-requests.org/en/latest/ ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Basic
Il 24/03/2014 11:24, Luigi Fontana ha scritto: Parlo del vecchio basic del commodore 64 o dell'Amiga e non del visual della mikrozozz. Ha ancora senso o scopo come linguaggio oggidì? Curiosità del lunedì mattina.. Dipende... se hai un commodore 64! :D ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Basic
2014-03-24 11:24 GMT+01:00 Luigi Fontana picchiole...@gmail.com: Curiosità del lunedì mattina... Te non hai grossi carichi di lavoro il lunedi' mattina eh? ;) Carlos -- Coloro che sognano di giorno sono uomini pericolosi, perche' sono capaci di recitare a occhi aperti il loro sogno fino a renderlo possibile. Ed e' questo che feci anch'io. - (T.E. Lawrence) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Problema con sito https
Il 24/03/2014 11:24, Diego Barrera ha scritto: Io pero' tempo fa ho fatto un programmino che si autenticava via https; ho utilizzato requests senza ricompilare niente: http://docs.python-requests.org/en/latest/ http://docs.python-requests.org/en/latest/user/advanced/?highlight=https#ssl-cert-verification ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Basic
Il giorno 24 marzo 2014 11:26, Diego Barrera diegonebarr...@yahoo.it ha scritto: Il 24/03/2014 11:24, Luigi Fontana ha scritto: Parlo del vecchio basic del commodore 64 o dell'Amiga e non del visual della mikrozozz. Ha ancora senso o scopo come linguaggio oggidì? Curiosità del lunedì mattina.. Dipende... se hai un commodore 64! :D appunto, direi che ha senso solo in un ottica nostalgica retro-computing (es. per riprovare le emozioni dei 14 anni) altrimenti non ha nessun senso andare a incasinarsi la vita con numeri di riga, goto e altre amenità preistoriche ... ok, ok l'amiga basic non aveva i numeri di riga e aveva i costrutti strutturati ... ma, insomma, siamo ben lontani da, esempio, python ciao, Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Problema con sito https
Il giorno 24 marzo 2014 11:04, Pietro Battiston m...@pietrobattiston.it ha scritto: a fare monkey patching di urllib2 e di ssl come se non ci fosse un domani... come non ci fosse un domani... locuzione efficace! :-) questa me la segno :-) ciao, Marco ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Problema con sito https
è (anche?) un problema del server, non gestisce correttamente l'handshake TLS... se apri con chrome infatti puoi vedere che non usa TLS, ma solo il vecchio SSL 3.0 curl mostra questo: * Rebuilt URL to: https://www.u-gov.sssup.it/ * Adding handle: conn: 0x1d51d10 * Adding handle: send: 0 * Adding handle: recv: 0 * Curl_addHandleToPipeline: length: 1 * - Conn 0 (0x1d51d10) send_pipe: 1, recv_pipe: 0 * About to connect() to www.u-gov.sssup.it port 443 (#0) * Trying 193.205.80.7... * Connected to www.u-gov.sssup.it (193.205.80.7) port 443 (#0) * Initializing NSS with certpath: sql:/etc/pki/nssdb * CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none * NSS error -12226 (SSL_ERROR_ILLEGAL_PARAMETER_ALERT) * SSL peer rejected a handshake message for unacceptable content. * Error in TLS handshake, trying SSLv3... sembra un problema simile a quello qui descritto: http://bugs.python.org/msg128635 in questo caso, che il problema sia anche con SSL2 (immagino che SSL23 indichi che python prova sia con ssl2 che con ssl3), e suggeriscono di forzare SSL3 https_sslv3_handler = urllib.request.HTTPSHandler(context=ssl.SSLContext(ssl.PROTOCOL_SSLv3)) opener = urllib.request.build_opener(https_sslv3_handler) urllib.request.install_opener(opener) request.urlopen('https://www.u-gov.sssup.it') http.client.HTTPResponse object at 0x7ff96f72acd0 così facendo funziona... mi chiedo se u-gov.sssup.it usi lo stesso webserver/libreria ssl che era usata da ui2web1.apps.uillinois.edu -- xmpp: berda...@gmail.com bitmessage: BM-2cTYXfGiSTsnx3righ6aHcJSWe4MV17jDP gpg fingerprint: 3F8D53518012716C4EEF7DF67B498306B3BF75A0 (used just for signing commits) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Basic
Mica faccio il programmatore... :-D Il lavoro del lunedì mattina è assemblare 24 bamboline di legno... Du balle a livello di manualità ma a livello mentale siamo a zero :-D Luigi Fontana www.picchiolegno.it ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Problema con sito https
Pietro Battiston wrote: Salve a tutti, è da un po' che sbatto la testa contro questo problema: import urllib2 urllib2.urlopen('https://www.u-gov.sssup.it') [... lungo traceback ...] URLError: urlopen error [Errno 1] _ssl.c:504: error:140773E8:SSL routines:SSL23_GET_SERVER_HELLO:reason(1000) Succede sia con urllib2 che con il fork di urllib2 che mechanize ingloba. ... se quelle sono le uniche due righe e subito parte l'errore hai un problema di tipo diverso, a me da questo: import urllib2 x = urllib2.urlopen('https://www.u-gov.sssup.it') x.read() 'html\nhead\nmeta http-equiv=refresh content=0;url=https://www.u-gov.sssup.it/sssup/;\ntitleU-GOV/title \n/head\nbody\n/body\n/html\n' non è che ti manca qualche libreria di sistema o pyhton non è compilato con il supporto ssl? Pochissima di esperienza ed un po' più di ricerca su google mi hanno spinto a pensare che fosse un problema con il certificato SSL non trusted, e a fare monkey patching di urllib2 e di ssl come se non ci fosse un domani... ma invece pare che proprio la comunicazione SSL non parta nemmeno se impongo di non fare il check (che peraltro mechanize di default fa, ma urllib2 mi pare ancora di no). Ho provato sia in una debian testing che in una Ubuntu ben più datata, non cambia niente. Ovviamente, la cosa che non capisco è che invece in un browser si apre perfettamente. Qualsiasi illuminazione sarà illuminante! Grazie, Pietro -- Riccardo Lemmi ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Basic
Se ci fosse il tasto mi piace lo avrei usato qui ;) Il 24/mar/2014 11:26 Diego Barrera diegonebarr...@yahoo.it ha scritto: Il 24/03/2014 11:24, Luigi Fontana ha scritto: Parlo del vecchio basic del commodore 64 o dell'Amiga e non del visual della mikrozozz. Ha ancora senso o scopo come linguaggio oggidì? Curiosità del lunedì mattina.. Dipende... se hai un commodore 64! :D ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Problema con sito https
Riccardo, curioso che a te funzioni: leggi il mio messaggio, che spiega il problema forse a te funziona perchè hai una versione diversa di openssl? puoi darci l'output di python -c import ssl; print(ssl.OPENSSL_VERSION) e di curl -v 'https://www.u-gov.sssup.it' ? -- xmpp: berda...@gmail.com bitmessage: BM-2cTYXfGiSTsnx3righ6aHcJSWe4MV17jDP gpg fingerprint: 3F8D53518012716C4EEF7DF67B498306B3BF75A0 (used just for signing commits) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Problema con sito https
Mi hanno fatto sapere che esiste anche il pacchetto requests_toolbelt, che rende un po' meno farraginoso selezionare il protocollo TLS che volete per le connessioni: import ssl, requests from requests_toolbelt import SSLAdapter s = requests.Session() s.mount('https://www.u-gov.sssup.it', SSLAdapter(ssl.PROTOCOL_SSLv3)) s.get('https://www.u-gov.sssup.it') Response [200] -- xmpp: berda...@gmail.com bitmessage: BM-2cTYXfGiSTsnx3righ6aHcJSWe4MV17jDP gpg fingerprint: 3F8D53518012716C4EEF7DF67B498306B3BF75A0 (used just for signing commits) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] Fwd: Codemotion Roma: Chiusura Early Bird Giovedì 27 marzo e reminder promo code per Python Italia
manca pochissimo alla *chiusura dell'Early Bird (giovedì 27 marzo)* che permette di accedere all'evento ad un prezzo conveniente. Vi ricordo il vostro *promo code* che vi permette di avere un'ulteriore *sconto del 40%*: *'pythonitalia'*. Il link diretto per accedere al prezzo scontato è https://www.eventbrite.it/e/biglietti-codemotion-rome-2014-conference-10255116329?discount=pythonitalia . Noi speriamo che tutti coloro che vogliono partecipare a Codemotion Roma possano acquistare il loro ingresso entro questa fase con uno sconto vantaggioso. Grazie ancora! -- *Tsuneo Kurihara* *Community Relations Manager* Mail: tsuneo.kurih...@codemotion.it Mobile: +39 392 6967704 +393926967704 http://www.codemotionworld.com/ Follow us onhttp://www.facebook.com/codemotion http://www.twitter.com/codemotionroma Title: 500 Internal Server Error Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator at webmas...@rome.codemotionworld.com to inform them of the time this error occurred, and the actions you performed just before this error. More information about this error may be available in the server error log. Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request. inline: logo.pngTitle: 500 Internal Server Error Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator at webmas...@rome.codemotionworld.com to inform them of the time this error occurred, and the actions you performed just before this error. More information about this error may be available in the server error log. Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Problema con sito https
Dario Bertini wrote: Riccardo, curioso che a te funzioni: leggi il mio messaggio, che spiega il problema forse a te funziona perchè hai una versione diversa di openssl? puoi darci l'output di python -c import ssl; print(ssl.OPENSSL_VERSION) e di curl -v 'https://www.u-gov.sssup.it' ? Certo, ecco qua: $ python -c import ssl; print(ssl.OPENSSL_VERSION) Traceback (most recent call last): File string, line 1, in module AttributeError: 'module' object has no attribute 'OPENSSL_VERSION' Questo è un python 2.6.5: interessante :D Con un python 2.7 compilato da me: $ /opt/python-2.7.2/bin/python -c import ssl; print(ssl.OPENSSL_VERSION) OpenSSL 0.9.8k 25 Mar 2009 e funziona ancora il codice sopra mentre con un python 3.1 (sempre compilato da me, sullo stessa macchina degli altri due interpreti: import urllib.request as urllib2 x=urllib2.urlopen('https://www.u-gov.sssup.it') Traceback (most recent call last): File /opt/python-3.1.1/lib/python3.2/urllib/request.py, line 1136, in do_open h.request(req.get_method(), req.selector, req.data, headers) File /opt/python-3.1.1/lib/python3.2/http/client.py, line 964, in request self._send_request(method, url, body, headers) File /opt/python-3.1.1/lib/python3.2/http/client.py, line 1002, in _send_request self.endheaders(body) File /opt/python-3.1.1/lib/python3.2/http/client.py, line 960, in endheaders self._send_output(message_body) File /opt/python-3.1.1/lib/python3.2/http/client.py, line 805, in _send_output self.send(msg) File /opt/python-3.1.1/lib/python3.2/http/client.py, line 743, in send self.connect() File /opt/python-3.1.1/lib/python3.2/http/client.py, line 1105, in connect server_hostname=server_hostname) File /opt/python-3.1.1/lib/python3.2/ssl.py, line 179, in wrap_socket _context=self) File /opt/python-3.1.1/lib/python3.2/ssl.py, line 266, in __init__ raise x File /opt/python-3.1.1/lib/python3.2/ssl.py, line 262, in __init__ self.do_handshake() File /opt/python-3.1.1/lib/python3.2/ssl.py, line 441, in do_handshake self._sslobj.do_handshake() ssl.SSLError: [Errno 1] _ssl.c:392: error:14077417:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert illegal parameter e il curl: $ curl -v 'https://www.u-gov.sssup.it' * About to connect() to www.u-gov.sssup.it port 443 (#0) * Trying 193.205.80.7... connected * Connected to www.u-gov.sssup.it (193.205.80.7) port 443 (#0) * successfully set certificate verify locations: * CAfile: none CApath: /etc/ssl/certs * SSLv3, TLS handshake, Client hello (1): * error:14077417:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert illegal parameter * Closing connection #0 curl: (35) error:14077417:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert illegal parameter -- Riccardo Lemmi ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Problema con sito https
uh, curioso O_o immagino che il tuo python3 sia linkato con la stessa versione di OpenSSL, giusto? -- xmpp: berda...@gmail.com bitmessage: BM-2cTYXfGiSTsnx3righ6aHcJSWe4MV17jDP gpg fingerprint: 3F8D53518012716C4EEF7DF67B498306B3BF75A0 (used just for signing commits) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Problema con sito https
Dario Bertini wrote: uh, curioso O_o immagino che il tuo python3 sia linkato con la stessa versione di OpenSSL, giusto? Si, è la libreria di sistema. $ /opt/python-3.1.1/bin/python3 -c import ssl; print(ssl.OPENSSL_VERSION) OpenSSL 0.9.8k 25 Mar 2009 -- Riccardo Lemmi ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Problema con sito https
Il giorno lun, 24/03/2014 alle 11.32 +0100, Marco De Paoli ha scritto: Il giorno 24 marzo 2014 11:04, Pietro Battiston m...@pietrobattiston.it ha scritto: a fare monkey patching di urllib2 e di ssl come se non ci fosse un domani... come non ci fosse un domani... locuzione efficace! :-) In effetti se rileggo noto che dà proprio l'idea della manutenibilità di quel codice! Pietro ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Problema con sito https
Il giorno lun, 24/03/2014 alle 11.32 +0100, Dario Bertini ha scritto: è (anche?) un problema del server, non gestisce correttamente l'handshake TLS... se apri con chrome infatti puoi vedere che non usa TLS, ma solo il vecchio SSL 3.0 [...] in questo caso, che il problema sia anche con SSL2 (immagino che SSL23 indichi che python prova sia con ssl2 che con ssl3), e suggeriscono di forzare SSL3 https_sslv3_handler = urllib.request.HTTPSHandler(context=ssl.SSLContext(ssl.PROTOCOL_SSLv3)) opener = urllib.request.build_opener(https_sslv3_handler) urllib.request.install_opener(opener) request.urlopen('https://www.u-gov.sssup.it') http.client.HTTPResponse object at 0x7ff96f72acd0 Giusto! In effetti con questo monkey patching poi tutto mi fila liscio: import ssl from ssl import PROTOCOL_SSLv23, PROTOCOL_SSLv3, CERT_NONE, SSLSocket def monkey_wrap_socket(sock, keyfile=None, certfile=None, server_side=False, cert_reqs=CERT_NONE, ssl_version=PROTOCOL_SSLv23, ca_certs=None, do_handshake_on_connect=True, suppress_ragged_eofs=True, ciphers=None): ssl_version=PROTOCOL_SSLv3 return SSLSocket(sock, keyfile=keyfile, certfile=certfile, server_side=server_side, cert_reqs=cert_reqs, ssl_version=ssl_version, ca_certs=ca_certs, do_handshake_on_connect=do_handshake_on_connect, suppress_ragged_eofs=suppress_ragged_eofs, ciphers=ciphers) ssl.wrap_socket = monkey_wrap_socket Grazie mille, Pietro ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Problema con sito https
2014-03-24 10:04 GMT+00:00 Pietro Battiston m...@pietrobattiston.it: e a fare monkey patching di urllib2 e di ssl come se non ci fosse un domani.. Io fossi in te seguirei il consiglio che gia' ti e' stato dato e userei requests. Perche' se fai monkey patching di quella roba, fai bene ad assumere che non ci sia un domani. :) -- . ..: -enrico- ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Basic
Parlo del vecchio basic del commodore 64 o dell'Amiga e non del visual della mikrozozz. Sono orgoglioso possessore di una Amiga 500 (espansa a 1024, con doppio lettore floppy), perfettamente funzionante. Una volta all'anno una bella partitina a Kick-off di Dino Dini non può mancare. Posso farti da beta tester.. ;-) Ciao. Daniele ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Basic
Gioco preferito: alien breed :-D Ah beh, mica pizza e fichi... Cya ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Python vs C
2014-03-24 22:47 GMT+01:00 Luigi Fontana picchiole...@gmail.com: Dato che, come avrete ben capito, sono un mero hobbista con più passione che abilità e competenza scusatemi se vi pongo un'altra domanda banale. Al mio livello python e C li trovo abbastanza equivalenti. Per crearmi piccoli programmini di contabilità fonzionano egregiamente entrambi. In cosa differiscono nelle applicazioni più complesse? Luigi Fontana www.picchiolegno.it No, non sono equivalenti, neanche se li guardi da 10 km di distanza. Uno (C) è di basso livello, l'altro (Python) di altissimo livello. Banalmente questo significa che col primo (C) ti devi fare tutto a mano (gestione della memoria, non hai oggetti, stringhe, eccezioni, dinamismo, etc.). Questo è il prezzo che paghi per avere velocità, portabilità e un accesso molto vicino al sistema operativo. Il più delle volte queste 3 cose non ti servono, ergo il prezzo non è giustificato. Non lo è *sicuramente* per il tipo di applicazione che dici tu (contabilità). ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python