Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1440 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  Serveur HTTPS Python

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Serveur HTTPS Python

n°1384217
maxdelamur​e
Posté le 09-06-2006 à 08:34:03  profilanswer
 

Salut à tous, :hello:  
pour un projet d'étude j'ai besoin de réaliser un serveur python acceptant le protocole https sécurisé et des scripts python (dans un cgi-bin par exemple).
 
J'avais auparavant réalisé un serveur réalisant presque mes souhaits, mais n'implémentant pas https.
Me voila partit dans les pérégrinations googleienne, mais rien (ou presque) n'a répondu à mon problème.
J'ai réalisé un serveur qui marche "presque", utilisant les classes suivantes :
from CGIHTTPServer import CGIHTTPRequestHandler
from M2Crypto.SSL.SSLServer import SSLServer
from M2Crypto import Rand, SSL
 
M2Crypto étant une classe permettant de gérer le ssl à priori.
 
Mais voila : tout marche sauf ... la lecture des scripts python !  :??: pièce maitresse de mon projet ... en effet un segmentation fault le fait planter complètement. Cependant l'ouverture d'une page html classique ou une image fonctionne très bien... (bizarre...)
 
Je ne sais pas si vous avez une idée sur ce point, ou même si vous vous êtes déjà penché sur un tel problème, mais dans les deux cas, si vous pouvez m'aider ce serait d'une grande aide pour moi  :jap: merci d'avance.  
 
Je vous mets en annexe mon serveur pyton :
from CGIHTTPServer import CGIHTTPRequestHandler
from M2Crypto.SSL.SSLServer import SSLServer
from M2Crypto import Rand, SSL
import os
 
class HTTPS_Server(SSLServer):
def __init__(self, server_addr, handler, ssl_ctx):
SSLServer.__init__(self, server_addr, handler, ssl_ctx)
self.server_name = server_addr[0]
self.server_port = server_addr[1]
 
def finish(self):
self.request.set_shutdown(SSL.SSL_RECEIVED_SHUTDOWN | SSL.SSL_SENT_SHUTDOWN)
self.request.close()
 
 
def init_context(protocol, certfile, cafile, verify, verify_depth=10):
ctx=SSL.Context(protocol)
ctx.load_cert(certfile)
ctx.load_client_ca(cafile)
ctx.load_verify_info(cafile)
ctx.set_verify(verify, verify_depth)
ctx.set_allow_unknown_ca(1)
ctx.set_session_id_ctx('https_srv')
ctx.set_info_callback()
return ctx
 
 
if __name__ == '__main__':
Rand.load_file('../randpool.dat', -1)
ctx = init_context('sslv23', 'server.pem', 'ca.pem', SSL.verify_none)
ctx.set_tmp_dh('dh1024.pem')
os.chdir("pages" )
httpsd = HTTPS_Server(('', 9443), CGIHTTPRequestHandler, ctx)
httpsd.serve_forever()
Rand.save_file('../randpool.dat')
 
=========
Erreur lors de l'éxécution :
localhost.localdomain - - [08/Jun/2006 23:25:25] "GET / HTTP/1.1" 200 -
LOOP: SSL accept: before/accept initialization
LOOP: SSL accept: SSLv3 read client hello A
LOOP: SSL accept: SSLv3 write server hello A
LOOP: SSL accept: SSLv3 write change cipher spec A
LOOP: SSL accept: SSLv3 write finished A
LOOP: SSL accept: SSLv3 flush data
LOOP: SSL accept: SSLv3 read finished A
INFO: SSL accept: SSL negotiation finished successfully
localhost.localdomain - - [08/Jun/2006 23:25:26] "GET /cgi-bin/index.py HTTP/1.1" 200 -
close failed: [Errno 104] Connection reset by peer
Erreur de segmentation
 
Configuration personnelle :
- Linux Ubuntu Breezy Badger 2.6.12-10-686-smp
- python 2.4

mood
Publicité
Posté le 09-06-2006 à 08:34:03  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  Serveur HTTPS Python

 

Sujets relatifs
[JavaScript] Récupérer une variable serveurChangement de serveur : restaurer une base de données
executer script sous pythonAjax qui fonctionne sur serveur local mais pas sur un serveur distant
[PYTHON]JeuxServeur IRC en Python
Python vs Ruby ?[Java] pas de synchro entre le serveur et les clients
[Python] Requete HTTP sans proxy avec urllib2 
Plus de sujets relatifs à : Serveur HTTPS Python


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR