IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

lancer un script python d'un serveur web https


Sujet :

Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Août 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Août 2020
    Messages : 4
    Par défaut lancer un script python d'un serveur web https
    Bonjour,
    j'ai créer un script python qui lance un script sh et qui renvoi un résultat. J'avais fait cela a l'époque a l'aide d'un module cgi qui simulait un serveur web et qui écoutait sur un port. Quand j'appelais avec le bon port et python depuis une fenêtre web cela fonctionnait.
    Un autre serveur web à l'aide d'un iframe executait le python. J'ai passé mon deuxième serveur web en https et depuis j'ai une erreur qui m'empêche dans l'iframe de faire un lien vers du http.
    J'ai passé mon premier serveur web en https aussi mais cela ne fonctionne plus. En effet même si je relance le serveur à l'écoute sur le port XXXX il n'est jamais joignable car l'appel se fait en 443.
    Quelqu'un a t'il une idée? Toutes les idées que je trouve sont basé sur du http.

    Merci par avance.

    Cordialement

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 677
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 677
    Par défaut
    Salut,

    Si le serveur écoute sur le port XXXX, il faudra que le client se connecte à ce port là.
    Pour le reste, HTTP et HTTPS sont des protocoles de transport, et normalement, vous avez les bibliothèques ad hoc qui font le boulot pour que çà se programme "pareil".

    CGI est une interface entre le serveur Web et le script Python. Il doit bien y avoir une variable CGI qui dit si la requête est HTTP ou HTTPS mais çà ne devrait pas changer grand chose.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Août 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Août 2020
    Messages : 4
    Par défaut
    du coup je ne comprend pas ce que je peux faire.

  4. #4
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 179
    Par défaut
    hello
    Citation Envoyé par gdrausin Voir le message
    Un autre serveur web à l'aide d'un iframe executait le python. J'ai passé mon deuxième serveur web en https et depuis j'ai une erreur qui m'empêche dans l'iframe de faire un lien vers du http.
    J'ai passé mon premier serveur web en https aussi mais cela ne fonctionne plus. En effet même si je relance le serveur à l'écoute sur le port XXXX il n'est jamais joignable car l'appel se fait en 443.
    Quel type de serveurs web utilises-tu ? peux-tu nous montrer le code si c'est un serveur en python ?
    Ami calmant, J.P

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Août 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Août 2020
    Messages : 4
    Par défaut
    bonjour biensur,
    deja en gros le besoin initiale c'est que j'ai un script sh qui doit reinitialiser un mot de passe applicatif. Ce script sh lance une commande ds mon apllication verifie que l'utilisateur existe et si c'est le cas lui genere un pass et lui envoi. S'il n'existe pas il affiche un message "n'existe pas".
    Pour lancer ce sh j'ai fait un script python qui est integrer dans un iframe ou il fait apparaitre une fenetre avec une case de saisie et un bouton envoyer. Tout etait sur le meme serveur (application, sh, pyhton et tomcat) en http. Pour faire fonctionner mon python j'ai mis en place un 'serveur web' qui ecoute et qui peut lancer du pyhton avec ce code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #!/usr/bin/python3
     
    import http.server
     
    PORT = 8889
    server_address = ("", PORT)
     
    server = http.server.HTTPServer
    handler = http.server.CGIHTTPRequestHandler
    handler.cgi_directories = ["/"]
    print ("Serveur actif sur le port :", PORT)
     
    httpd = server(server_address, handler)
    httpd.serve_forever()
    Je le fais tourner en tache de fond et dès que je met http://monsite dans ma page j'ai integrer l'iframe avec
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id = "disclaimer"><web:descriptor key="" desc=" " /><center><span id='bouton_id_iframe' onclick='javascript:afficher('id_iframe');'><center><b id = "tex">Mot de passe perdu, cliquer ici !!!</b></center></span><iframe id='id_iframe' name='ma-iframe' src='https://www.google.com/search?q=%http://monsite:8889/chpwd_prod' width='400' height='280' scrolling='auto' align='top' frameborder='0' style='visibility:hidden;'></iframe><script type='text/javascript'>function afficher(id){if(document.getElementById(id).style.visibility=='hidden') document.getElementById(id).style.visibility='visible';else if(document.getElementById(id).style.visibility=='visible') document.getElementById(id).style.visibility='hidden'; else return true;}</script></center></div>

    Cela fonctionnait nikel jusqu'au passage sous GCP et en https. La redirection dans l'iframe en http ne fonctionne plus par sécurité et impossible de trouver comment ouvrir un port 8889 en https.

  6. #6
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 179
    Par défaut
    Pour avoir un serveur https à partir de http.server, il te faut générer une clé (ex key.pem) et un certificat ex:cert.pem) et ensuite lancer le serveur comme ceci par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    from http.server import HTTPServer, BaseHTTPRequestHandler
    import ssl
    httpd = HTTPServer(('localhost', 443), BaseHTTPRequestHandler)
     
    httpd.socket = ssl.wrap_socket (httpd.socket, 
            keyfile="path/to/key.pem", 
            certfile='path/to/cert.pem', server_side=True)
    httpd.serve_forever()
    Pour générer la clé et le certificat une commande openssl comme celle-ci devrait suffire :
    openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365
    augmenter le nombre de jours si besoin.

Discussions similaires

  1. lancer un script shell sur un serveur distant avec php
    Par MSM_007 dans le forum Langage
    Réponses: 1
    Dernier message: 03/05/2010, 11h32
  2. Réponses: 8
    Dernier message: 30/09/2009, 18h25
  3. script à l'ecoute sur serveur web
    Par snipes dans le forum Serveurs (Apache, IIS,...)
    Réponses: 4
    Dernier message: 16/04/2008, 17h53
  4. [Système] Lancer un script python en PHP
    Par gannher dans le forum Langage
    Réponses: 10
    Dernier message: 13/09/2007, 11h24
  5. Intégrer un script python dans une page Web
    Par Mysti¢ dans le forum Réseau/Web
    Réponses: 4
    Dernier message: 02/11/2006, 10h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo