Ich versuche, eine Web-Schnittstelle zu Mock-up eine erholsame Schnittstelle auf Netzwerkgerät erstellen dieses Netzwerkgerät verwendet Digest-Authentifizierung und HTTPS. Ich habe herausgefunden, wie Digest Authentication in den Webserver integriert werden kann, aber ich kann nicht herausfinden, wie https mit FLASK zu bekommen, wenn Sie mir zeigen, wie bitte kommentieren, was ich mit dem Code unten tun müsste, um dies zu ermöglichen.können Sie HTTPS-Funktionalität zu einem Python-flash-Webserver hinzufügen?
Antwort
dies funktioniert auch in eine Prise
from flask import Flask, jsonify
from OpenSSL import SSL
context = SSL.Context(SSL.SSLv23_METHOD)
context.use_privatekey_file('server.key')
context.use_certificate_file('server.crt')
app = Flask(__name__)
@app.route('/')
def index():
return 'Flask is running!'
@app.route('/data')
def names():
data = {"names": ["John", "Jacob", "Julie", "Jennifer"]}
return jsonify(data)
#if __name__ == '__main__':
# app.run()
if __name__ == '__main__':
app.run(host='127.0.0.1', debug=True, ssl_context=context)
SSLv3 hat POODLE-Schwachstelle. Ändern Sie es zu TSL – OWADVL
Folgen Sie diesem Link: http://flask.pocoo.org/snippets/111/ Am Ende der Seite erklärt ein Kommentar, wie man in TSL ändert. –
Stellen Sie Flask auf einem echten Webserver und nicht mit dem integrierten (Entwicklungs-) Server bereit.
Siehe die Deployment Options chapter der Flask-Dokumentation. Server wie Nginx und Apache können beide HTTPS-Server anstatt HTTP-Server für Ihre Site einrichten.
Die aufgeführten eigenständigen WSGI-Server werden normalerweise in einer Proxyweiterleitungskonfiguration hinter Nginx und Apache bereitgestellt, wobei der Front-End-Server die SSL-Verschlüsselung für Sie weiterhin verarbeitet.
Wenn Sie mod_wsgi-express (https://pypi.python.org/pypi/mod_wsgi) verwenden, bietet es eine einfache Möglichkeit, eine Site mit zu starten HTTPS, plus verfügt über integrierte Funktionen zur Handhabung des Digest-Authentifizierungsprotokolls auf Web-Server-Ebene. Schlage vor, dass du in der mod_wsgi Mailingliste danach fragst, da StackOverflow kein Diskussionsforum ist und daher nicht so einfach erklärt werden kann. –
danke Jungs werden tun – robm
@Martijn Pieters, Könnten Sie bitte erklären, warum wir "Flask auf einem echten Webserver, anstatt mit dem integrierten (Entwicklung) Server bereitstellen soll."? Danke –
Verwenden Sie diesen Code
from flask import Flask, jsonify
import os
ASSETS_DIR = os.path.dirname(os.path.abspath(__file__))
app = Flask(__name__)
@app.route('/')
def index():
return 'Flask is running!'
@app.route('/data')
def names():
data = {"names": ["John", "Jacob", "Julie", "Jennifer"]}
return jsonify(data)
if __name__ == '__main__':
context = ('local.crt', 'local.key')#certificate and key files
app.run(debug=True, ssl_context=context)
Niemals openssl oder pyopenssl seine jetzt obselete werden in Python
Um 'local.crt' und' local.key' zu erzeugen, siehe Methode 2 von: http: // kracekumar.com/post/54437887454/ssl-for-flask-lokale-entwicklung – andyandy
seltsam, es läuft bei 'http: //127.0.0.1: 5000 /'. soll das nicht auf sicherem http laufen. Ich kann immer noch bei "http: //127.0.0.1: 5000 /' "abholen – prayagupd
Wenn dieser Webserver ist nur für Test- und Demonstrationszwecke. Sie können auch ngrok verwenden, eine Open Source, die Ihren HTTP-Verkehr durchtunnelt.
Im Grunde erstellt ngrok eine öffentliche URL (sowohl http als auch https) und leitet dann den Datenverkehr an den Port, auf dem der Flask-Prozess läuft.
Es dauert nur ein paar Minuten bis zu setzen. Sie müssen zuerst die Software herunterladen. Dann führen Sie den Befehl
./ngrok http [Portnummer Ihres Python Prozess läuft]
Es wird dann ein Fenster in Terminal öffnen Ihnen sowohl eine http geben und https-URL Ihren Web-App zuzugreifen.
- 1. Können wir Text zu einem Zeichen hinzufügen?
- 2. In Xcode können Sie Code direkt zu einem Schnittstellenelement hinzufügen?
- 3. Sie können einem Fenster keine Miniaturschaltflächen hinzufügen?
- 4. Können Sie einem entführten JavaScript-Array eine Funktion hinzufügen?
- 5. Wie können Sie Jacoco-Ausschlüsse in einem untergeordneten Projekt hinzufügen?
- 6. zu einem Objekt hinzufügen
- 7. Sie können einem ViewModel keine Entität als Liste hinzufügen?
- 8. Können Sie einem Kendo-Fenster einen modalen Hintergrund hinzufügen?
- 9. Wie können Sie einem Navigationsfach dauerhafte Schaltflächen hinzufügen?
- 10. Können Sie einem C# -Wächter ein Objekt hinzufügen?
- 11. Wie können Sie externe Abhängigkeiten zu Bazel hinzufügen?
- 12. Können Sie Attribute zu einer GridView im Code hinterher hinzufügen?
- 13. Können Sie eine BarTintColor hinzufügen, um nativen Router zu reagieren
- 14. Können Sie IBidable-Eigenschaften mit Kategorien/Erweiterungen zu UIView hinzufügen?
- 15. Wie können Sie weitere Verknüpfungen zu Android Studio Toolbar hinzufügen?
- 16. Können Sie Bootstrap zu einer Ionic App hinzufügen?
- 17. Können Sie Parameter zu benutzerdefinierten Django-Admin-Aktionen hinzufügen?
- 18. Können Sie in MOSS ein Veröffentlichungsbildfeld zu einer Ankündigungsliste hinzufügen?
- 19. Können Sie IIS7 eine Ordnerstruktur hinzufügen?
- 20. In javers, können Sie zusätzliche Einträge hinzufügen
- 21. WPF: Wie können Sie zur Laufzeit ein neues Menüelement zu einem Menü hinzufügen?
- 22. Wie können Sie Hilfedateien zu einem .NET-Projekt hinzufügen oder handhaben?
- 23. Wie können Sie Ansichten dynamisch zu einem RelativeLayout hinzufügen, das bereits im XML-Layout deklariert wurde?
- 24. Können Sie eine ESC-Tastenkombination hinzufügen?
- 25. Können Sie einer Variablendeklaration eine Bedingung hinzufügen?
- 26. Können wir Primärschlüssel zu Sammlungsdatentypen hinzufügen?
- 27. wie Sie eine Bedingung zu einem Lambda-Ausdruck hinzufügen
- 28. Schaltfläche zu einem Bild hinzufügen
- 29. Wie können Sie dynamische Schlüssel in einem Array nur in einem bestimmten Format hinzufügen?
- 30. Sekunden zu einem Datum hinzufügen
http://flask.pooco.org/snippets/111/ –