2017-04-26 72 views
0

我开发在当地码头工人的应用程序,需要SSL与API端点工作,我已经遇到了麻烦,这些参数的工作:在localhost上使用SSL运行gunicorn? (与泊坞窗)

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 

码头工人找不到这些certfifles。所以我的问题是:gunicorn在哪里寻找这些certfiles?他们如何生成?

回答

0

它看起来在文件夹/ 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/

如果您愿意为他们付款,您可以通过使用Google搜索SSL证书来从众多公司中进行选择。

0

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

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

例子:

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