【问题标题】:Flask + gevent.pywsgi.WSGIServer + failed with SSLError + namecheapFlask + gevent.pywsgi.WSGIServer + SSLError + namecheap 失败
【发布时间】:2021-05-23 19:43:11
【问题描述】:

所以我让这个 Web 应用程序使用 Python 的 Flask 运行,并且我使用 gevent.pywsgi.WSGIServer 来使我的应用程序准备好投入生产。我的网站可以通过我的所有设备甚至其他具有不同网络的设备从 Internet 访问。 但是,我尝试通过使用 certbotletsencrypt 运行测试来添加 HTTPS 可能性...我通过了测试并获得了 certfilekeyfile 但是当我将它们作为参数放在以下函数中时:

app_server = gevent.pywsgi.WSGIServer(
    (CONFIG['Flask']['host'], int(CONFIG['Flask']['port'])),
    app,
    certfile="fullchain.pem",
    keyfile="privkey_rsa.pem"
)

我收到此错误 ssl.SSLError: [SSL] PEM lib

PS:我为 HTTPS 服务器打开了端口

这就是为什么我想知道问题是否来自:

  • letsencrypt 测试通过的域名
  • 域名注册商 ... 还是别的什么?

提前谢谢你。

【问题讨论】:

    标签: python python-3.x https dns gevent


    【解决方案1】:

    我知道这个问题很老了,我来这里是为了寻找其他问题的答案,但我已经了解了你的确切情况,忍不住回答了。

    我实际上以建立网站的正确方式解决了这种情况。我注册了一个免费的 dns 服务器,并将通过端口 80/443 进入我的路由器的所有流量路由到运行 NGINX 的 LAN 中的虚拟机,在那里我已经设置了 letencrypt 证书。使用此设置,我不必在网络中的任何其他机器上启用 SSL。题外话,但要启用本地网络级别的 ssl,您需要拥有网络中的所有机器。但是您可以使用 http 将来自 NGINX 的请求简单地转发到本地网络中运行的任何机器,并且所有流量都通过 SSL 发生。

    局域网的NGINX配置很简单,你可以通过google搜索自己创建一个,但基本结构包含一台服务器和几个子位置块,每个位置块对应于局域网中的一个Web应用程序。

    希望这会有所帮助。如果您仍在寻找,我可以通过具体步骤给出更详细的答案。

    【讨论】:

      猜你喜欢
      • 2020-09-22
      • 1970-01-01
      • 1970-01-01
      • 2016-05-19
      • 2016-06-14
      • 1970-01-01
      • 2022-01-07
      • 1970-01-01
      相关资源
      最近更新 更多