J'essaie de vérifier que la cible expose un service Web https. J'ai un code pour me connecter via HTTP mais je ne suis pas sûr de savoir comment se connecter via HTTPS. J'ai lu que vous utilisez SSL mais j'ai également lu qu'il ne supportait pas les erreurs de certificat. Le code que j'ai obtenu provient des docs python:Connexion HTTPS Python
import httplib
conn = httplib.HTTPConnection("www.python.org")
conn.request("GET", "/index.html")
r1 = conn.getresponse()
print r1.status, r1.reason
Est-ce que quelqu'un sait comment se connecter à HTTPS?
J'ai déjà essayé le HTTPSConenction mais il répond avec un code d'erreur indiquant que httplib n'a pas d'attribut HTTPSConnection. Je n'ai pas non plus socket.ssl disponible.
J'ai installé Python 2.6.4 et je ne pense pas qu'il ait compilé le support SSL. Est-il possible d'intégrer ce suppot dans le nouveau python sans avoir à l'installer à nouveau.
J'ai installé OpenSSL et pyopenssl et j'ai essayé le code ci-dessous de l'une des réponses:
import urllib2
from OpenSSL import SSL
try:
response = urllib2.urlopen('https://example.com')
print 'response headers: "%s"' % response.info()
except IOError, e:
if hasattr(e, 'code'): # HTTPError
print 'http error code: ', e.code
elif hasattr(e, 'reason'): # URLError
print "can't connect, reason: ", e.reason
else:
raise
J'ai une erreur:
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
File "/home/build/workspace/downloads/Python-2.6.4/Lib/urllib.py", line 87, in urlopen
return opener.open(url)
File "/home/build/workspace/downloads/Python-2.6.4/Lib/urllib.py", line 203, in open
return self.open_unknown(fullurl, data)
File "/home/build/workspace/downloads/Python-2.6.4/Lib/urllib.py", line 215, in open_unknown
raise IOError, ('url error', 'unknown url type', type)
IOError: [Errno url error] unknown url type: 'https'
Est-ce que quelqu'un sait comment obtenir ce travail?
-- UPDATE
J'ai découvert le problème, la version Python que j'utilisais ne supportait pas SSL. J'ai trouvé cette solution actuellement à: http://www.webtop.com.au/compiling-python-with-ssl-support.
Le code va maintenant fonctionner après cette solution qui est très bonne. Quand j'importe ssl et HTTPSConnection, je sais qu'il n'y a pas d'erreur.
Merci pour l'aide à tous.
Notez que cela ne vérifie pas le certificat distant, donc vous n'obtenez pas vraiment de sécurité de cette façon (car vous ne savez pas vraiment à quel serveur vous êtes réellement en train de parler). – Bruno
Le lien est mort. – SwiftsNamesake