从letsencrypt.org请求SSL证书
odoo10-addon-letsencrypt的Python项目详细描述
从letsencrypt.org请求SSL证书
编写此模块是为了让您的odoo安装请求ssl证书 从https://letsencrypt.org自动。
安装
安装后,此模块将为位于的帐户生成私钥 在$data_dir/letsencrypt/account.key中自动创建letsencrypt.org。如果你 要或需要使用您自己的帐户密钥,请替换该文件。
要使证书请求正常工作,您的站点需要通过普通的 http,请参见下面的配置示例,以防强制客户端 SSL版本。
安装后,触发cronjobupdate letsencrypt certificates并 注意日志中的消息。
此加载项依赖于openssl二进制文件和acme_tiny和IPy python模块。
要安装openssl二进制文件,可以使用发行版包管理器。 对于debian和ubuntu来说,应该是:
sudo apt-get install openssl
要安装acme tiny python模块,请使用pip包管理器:
sudo pip install acme-tiny
要安装ipy python模块,请使用pip包管理器:
sudo pip install IPy
配置
此加载项为配置中指定的域请求证书 参数web.base.url-如果返回为localhost或类似值, 模块不请求任何内容。
如果您希望证书包含多个可选名称,只需添加 它们作为配置参数letsencrypt.altname.N,以N开头 来自0。可以添加的域数量取决于rate limiting。
注意,所有这些域都必须通过http在端口80上可公开访问,并且 它们必须有一个指向您的odoo的.well-known/acme-challenge条目 实例。
使用量
模块设置一个cronjob,该cronjob自动请求和续订证书。
在第一次运行之后,您将在中找到一个名为domain.crt的文件 $datadir/letsencrypt,将ssl代理配置为使用此文件作为证书。
有关详细信息,请访问:
深度配置
此模块使用openssl生成适合提交到的csr Letsencrypt.org.网站。为此,它将/etc/ssl/openssl.cnf复制到 临时的,并根据需要进行调整(目前,这只是添加了 [SAN]节(如果需要)。如果希望模块使用其他配置 模板,设置配置参数letsencrypt.openssl.cnf。
刷新证书后,模块将尝试运行 letsencrypt.reload_command,默认为sudo service nginx reload。 更改此项以匹配服务器的配置。
您还需要一个匹配的sudo配置,如:
your_odoo_user ALL = NOPASSWD: /usr/sbin/service nginx reload
此外,如果强制用户使用https,则需要类似nginx的内容:
if ($scheme = "http") { set $redirect_https 1; } if ($request_uri ~ ^/.well-known/acme-challenge/) { set $redirect_https 0; } if ($redirect_https) { rewrite ^ https://$server_name$request_uri? permanent; }
这是给阿帕奇的:
RewriteEngine On RewriteCond %{HTTPS} !=on RewriteCond %{REQUEST_URI} "!^/.well-known/" RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
如果需要将其他nginx站点重定向到odoo实例,请声明 一个odoo实例的上游,并执行如下操作:
location /.well-known { proxy_pass http://yourodooupstream; }
如果您使用的是多数据库安装(带或不带dbfilter选项) 其中/web/database/selector返回一个以上数据库的列表,然后 您需要将letsencrypt加载项添加到宽加载加载项列表中 (默认情况下,仅webaddon),设置--loadoption。 例如,--load=web,letsencrypt
缺陷跟踪器
错误在GitHub Issues上跟踪。 如果出现问题,请检查是否已报告您的问题。 如果您首先发现了它,请提供详细且受欢迎的反馈,帮助我们粉碎它 here。
学分
贡献者
- 霍尔格·布鲁恩hbrunn@therp.nl>;
- 安东尼奥·埃斯皮诺萨<;antonio.espinosa@tecnativa.com>;
- 戴夫·拉斯利,dave@laslabs.com>;
- 罗纳德·波蒂尔(Ronald Portier)ronald@therp.nl>;
维护人员
此模块由OCA维护。
oca,或odoo社区协会,是一个非营利性组织 任务是支持odoo特性和 促进其广泛应用。
若要对此模块作出贡献,请访问https://odoo-community.org。