【发布时间】:2020-01-22 14:15:34
【问题描述】:
我尝试在本地主机以及本地网络的 IP 地址上运行我的 Flask 应用程序,它运行得非常好(没有 SSL)。
但是,当我尝试使用 SSL 运行应用程序时,Web 浏览器没有加载页面并给出错误:
您的连接不是私有的:NET::ERR_CERT_INVALID
我尝试过但失败的方法:
1.使用自签名.pem 证书(主题类型=CA)
使用生成的证书.pem、证书密钥和配置我的烧瓶应用程序使用它。
openssl req -x509 -newkey rsa:4096 -nodes -out cert.pem -keyout key.pem -days 365
app.run(
host='192.168.1.127', port="8282", debug=True,
ssl_context=('cert.pem', 'key.pem'),
)
2。使用自签名.crt 证书
使用生成的证书.crt、证书密钥和配置我的烧瓶应用程序使用它。
$ openssl genrsa -des3 -out server.key 1024
$ openssl req -new -key server.key -out server.csr
$ cp server.key server.key.org
$ openssl rsa -in server.key.org -out server.key
$ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
app.run(
host='192.168.1.127', port="8282", debug=True,
ssl_context=('server.crt', 'server.key')
)
3.使用ssl_context='adhoc'运行 Flask
```
app.run(
host='192.168.1.127', port="8282", debug=True,
ssl_context='adhoc'
)
```
我正在尝试构建一个系统,其中多个树莓派位于房子的不同房间,但它们连接到同一个家庭网络。
同一网络上的主计算机充当控制器并成功实施系统,我需要通过 HTTPS 从控制器系统向所有 Raspberry PI 发出请求。
【问题讨论】:
-
我怀疑这是特定于 Flask 的;你看过How do I run proper HTTPS on an Internal Network?和Is it possible to have SSL certificate for IP address, not domain name?这样的帖子,看看你有什么选择吗?
-
您确实想设置一个内部 DNS 服务器或在您的树莓派之间同步您的 /etc/hosts 文件,因此您可以使用主机名而不是 IP 地址。浏览器正确地拒绝接受 192.168.x.x 等私网 IP 地址的 SSL 证书。
标签: python flask raspberry-pi openssl ssl-certificate