python - 如何通过 SSL 运行 Flask/Python3.x?
问题描述
当我加载页面时,浏览器显示“无法访问此站点”
我的代码:
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def route1():
return f'--- request received ----'
if __name__ == "__main__":
# https://www.name-of-my-domain.com
app.run(port='8443', ssl_context=('./mydir/name-of-my-domain.com.crt', './mydir/private.key'))
我也试过:
from flask import Flask, request, jsonify
from werkzeug.serving import run_simple
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def route1():
return f'--- request received ----'
if __name__ == "__main__":
# https://www.name-of-my-domain.com
run_simple('https://www.name-of-my-domain.com/', 8443, app, ssl_context=('./mydir/name-of-my-domain.com.crt', './mydir/private.key'))
并且:
import ssl
# ... as before for app ...
context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
context.load_cert_chain('./mydir/name-of-my-domain.com.crt', './mydir/private.key')
run_simple('https://www.name-of-my-domain.com/', 8443, app, ssl_context=context)
但是对于最后两个,当我运行文件时出现错误:
File "bot.py", line 38, in <module>
run_simple('https://www.name-of-my-domain.com', 8443, app, ssl_context=context)
File "/usr/local/lib/python3.6/site-packages/werkzeug/serving.py", line 1052, in run_simple
inner()
File "/usr/local/lib/python3.6/site-packages/werkzeug/serving.py", line 1005, in inner
fd=fd,
File "/usr/local/lib/python3.6/site-packages/werkzeug/serving.py", line 863, in make_server
host, port, app, request_handler, passthrough_errors, ssl_context, fd=fd
File "/usr/local/lib/python3.6/site-packages/werkzeug/serving.py", line 740, in __init__
HTTPServer.__init__(self, server_address, handler)
File "/usr/lib64/python3.6/socketserver.py", line 456, in __init__
self.server_bind()
File "/usr/lib64/python3.6/http/server.py", line 136, in server_bind
socketserver.TCPServer.server_bind(self)
File "/usr/lib64/python3.6/socketserver.py", line 470, in server_bind
self.socket.bind(self.server_address)
socket.gaierror: [Errno -2] Name or service not known
解决方案
我将其排序为主机'0.0.0.0',它适用于所有三个代码示例(但 '127.0.0.1' 不起作用)
推荐阅读
- ios - '(CreateCompanyTableViewController) -> () -> CreateCompanyTableViewController' 类型的值没有成员'newStakeholders'?
- c# - 如何将 UTC 日期时间插入到 closedXML?
- javascript - 为什么正则表达式没有得到所有匹配项?
- gnuplot - 使用 gnuplot 绘制进程树(更改节点颜色和形状)
- excel - 根据单元格输入更改vba中的excel查询源
- spring-boot - 与嵌入键的多对多关系在主键中插入空值
- java - resilence4j+springboot2 断路器未打开
- oracle-apex - Oracle APEX - 如何确保在提交页面之前完成回调
- jquery - 将 Web Pack 输出为库
- sql - 结合数据透视表计算比率