2017-04-26 70 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