Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在flask中使用HTTPS运行localhost?_Python_Ssl_Flask_Https - Fatal编程技术网

Python 如何在flask中使用HTTPS运行localhost?

Python 如何在flask中使用HTTPS运行localhost?,python,ssl,flask,https,Python,Ssl,Flask,Https,我使用以下方法生成私钥和自签名证书: openssl req -x509 -out localhost.crt -keyout localhost.key \ -newkey rsa:2048 -nodes -sha256 \ -subj '/CN=localhost' -extensions EXT -config <( \ printf "[dn]\nCN=localhost\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectA

我使用以下方法生成私钥和自签名证书:

openssl req -x509 -out localhost.crt -keyout localhost.key \
  -newkey rsa:2048 -nodes -sha256 \
  -subj '/CN=localhost' -extensions EXT -config <( \
   printf "[dn]\nCN=localhost\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:localhost\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth")
并以两种方式运行flask应用程序(它们都不起作用):

如果uuuu name_uuuu=='\uuuuuuu main\uuuuuu':
运行(ssl_上下文=('localhost.crt','localhost.key'),调试=True)

如果uuuu name_uuuu=='\uuuuuuu main\uuuuuu':
app.run(host='127.0.0.1',ssl\u context=context,debug=True)
最后,

python app.py
然而,它并不在https上运行。
如何以以下方式运行:?

生成证书的方式和
ssl\u上下文
安装程序正在运行

我猜您使用Flask命令运行应用程序,例如
Flask run
,但是您的
ssl\u上下文
设置在
中,如果
name\uuuuuuu=='\uuuuu main\uuuuu':语句,这意味着只有当您直接执行此文件时才会以这种方式执行,例如
python app.py
,假设该文件被调用
app.py


默认情况下,flask在http上运行应用程序,因此它缺少https。

在运行https时有一个很好的方法:@gittert,我尝试了两种方法:简单和自签名。它不起作用。请详细解释一下,不仅仅是“它不起作用”。您使用了什么代码、导入了哪些软件包、运行应用程序时在控制台中显示了什么内容等。服务器始终在以下位置运行:。我也试过了:现在它说:“TypeError:cert必须是一个X509实例”。仅供参考,运行函数定义如下:
def run(self,host=None,port=None,debug=None,load_dotenv=True,**选项):
我还添加了如何创建上下文的问题。使用命令
python app.py
运行你的应用程序,假设你的应用程序文件名为
app.py
,应该可以运行。