【问题标题】:Running gunicorn with SSL on localhost? (with docker)在本地主机上使用 SSL 运行 gunicorn? (与码头工人)
【发布时间】:2017-04-26 19:07:35
【问题描述】:

我正在 docker 本地开发一个需要 ssl 才能使用 API 端点的应用程序,但我无法让这些参数正常工作:

gunicorn -c "python:config.gunicorn" --reload "dataexplorer.app:create_app()" --timeout 3600 
--workers=5 --certfile=/ssl/registry.crt 
--keyfile=/ssl/registry.key --ca-certs=/ssl/ca.cert --ssl-version=3

Docker 找不到这些证书文件。所以我的问题是:gunicorn 在哪里寻找这些证书文件?它们是如何生成的?

【问题讨论】:

    标签: docker flask gunicorn


    【解决方案1】:

    Gunicorn 正在寻找 Docker 容器内的文件。

    您可以使用 Docker 卷使您机器上的 SSL 密钥/证书在您的 Docker 容器中可用。

    例子:

    docker run -v /path/to/registry.key:/ssl/registry.key:ro -v /path/to/registry.crt:/ssl/registry.crt:ro -v /path/to/ca.crt:/ssl/ca.cert:ro <your_image>
    

    出于开发目的,您可以create a self-signed certificate。在这种情况下,您将没有 CA 证书,您可以将 gunicorn 命令简化为:

    gunicorn -c "python:config.gunicorn" --reload "dataexplorer.app:create_app()" --timeout 3600 
    --workers=5 --certfile=/ssl/registry.crt 
    --keyfile=/ssl/registry.key --ssl-version=3
    

    【讨论】:

      【解决方案2】:

      它在文件夹 /ssl/ 中查找

      就是这个意思:/ssl/registry.crt

      它正在 /ssl/ 中查找名为 registry.crt 的文件,registry.key 和 ca.cert 也是如此

      如果您确实有这些文件,请将它们放在您认为合适的位置,然后编辑开关以反映该位置,例如 --ca-certs=/home/user/ca.cert 或任何位置。

      如果您需要证书,可以按照以下指南创建自己的(“自签名”):https://devcenter.heroku.com/articles/ssl-certificate-self

      您也可以在这里获得免费的(需要定期更新):https://letsencrypt.org/

      如果您愿意为它们付费,您可以通过谷歌搜索 ssl 证书从众多公司中进行选择。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-14
        相关资源
        最近更新 更多