-
-
Save vpack/2d5f3f89affcc58dac462edbfdd5c119 to your computer and use it in GitHub Desktop.
from flask import Flask | |
from flask_sslify import SSLify | |
""" | |
Option 1 : (pip install pyopenssl) | |
from OpenSSL import SSL | |
context = SSL.Context(SSL.SSLv23_METHOD) | |
context.use_privatekey_file('web.key') | |
context.use_certificate_file('web.crt') | |
Option 2 : (OOB : No install) | |
import ssl | |
context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2) | |
context.load_cert_chain('web.crt', 'web.key') | |
Option 3 : Native Flask (No imports needed) | |
""" | |
app = Flask(__name__) | |
context = ('web.crt', 'web.key') | |
sslify = SSLify(app) | |
@app.route("/") | |
def hello(): | |
return "Hello World!" | |
if __name__ == "__main__": | |
context = ('web.crt', 'web.key') | |
app.run( debug = True, ssl_context = context) | |
#app.run( debug = True, ssl_context = 'adhoc') # Generate Adhoc Certs |
Thanks for this info. Using option 2, I have an issue with the crt and key files. Do you where are they stored by default? I looked into Python2/Python3 folders respectively and find nothing.
context.load_cert_chain('web.crt', 'web.key')
FileNotFoundError: [Errno 2] No such file or directory
You need to make your certs and place them in the directory.
Here is a page explaining making a self-signed cert.
Self Signed Certificates - devcenter.heroku.com
if you need something for online, check out lets-encrypt.
Just want to note that if anyone's having issues loading the .crt
and .key
files and they had converted them from .pem
files, it's possible the conversion wasn't necessary - it wasn't in my case (running on diet-pi using letsencrypt/certbot to gen keys) and in fact threw the following error:
OpenSSL.SSL.Error: [('PEM routines', 'get_name', 'no start line'), ('SSL routines', 'SSL_CTX_use_PrivateKey_file', 'PEM lib')]
when I use ssl_context = 'adhoc', everything runs but it doesn't show anything in the web browser. (it shoows in the terminal that it's running at https but doesn't work in the webbrowser) Any suggestion?
I have same problem as @antoniojsp , did you find a solution?
I'm having the same problem @antoniojsp @omarnazih
Any answers?
Tengo el mismo problema, alguna solución?
Thanks for this info. Using option 2, I have an issue with the crt and key files. Do you where are they stored by default? I looked into Python2/Python3 folders respectively and find nothing.
context.load_cert_chain('web.crt', 'web.key')
FileNotFoundError: [Errno 2] No such file or directory