跳转到主要内容

从letsencrypt.org请求SSL证书

项目描述

License: AGPL-3

从letsencrypt.org请求SSL证书

此模块是为了使您的Odoo安装能够自动从https://letsencrypt.openssl.ac.cn请求SSL证书而编写的。

安装

安装后,此模块将在$data_dir/letsencrypt/account.key中自动为您在letsencrypt.org的账户生成一个私有密钥。如果您想或需要使用自己的账户密钥,请替换文件。

为了使证书请求能够工作,您的站点需要通过纯HTTP可访问,以下是在您强制客户端使用SSL版本的情况下配置示例。

安装后,触发“更新letsencrypt证书”的cron作业并查看日志中的消息。

此插件依赖于openssl二进制文件和acme_tinyIPy 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

配置

此插件请求根据配置参数中命名的域名的证书 - 如果返回值为localhost或类似,则模块不会请求任何内容。

如果您希望您的证书包含多个替代名称,只需将它们作为配置参数letsencrypt.altname.N添加,其中N0开始。可以添加的域名数量受速率限制的影响。

请注意,所有这些域名必须在端口80上通过HTTP公开可达,并且它们必须有一个指向您Odoo实例的.well-known/acme-challenge的条目。

用法

该模块设置了一个cronjob,它会自动请求和续订证书。

第一次运行后,您将在$datadir/letsencrypt中找到一个名为domain.crt的文件,配置您的SSL代理使用此文件作为证书。

Try me on Runbot

有关更多信息,请访问

深入配置

此模块使用openssl生成适合提交给letsencrypt.org的CSR。为此,它将/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;
}

以及apache的类似配置

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} "!^/.well-known/"
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

如果需要将其他nginx站点重定向到您的Odoo实例,请为您的Odoo实例声明一个upstream,并执行类似以下操作

location /.well-known {
    proxy_pass    http://yourodooupstream;
}

如果您使用的是多数据库安装(带或不带dbfilter选项),其中/web/database/selector返回一个包含多个数据库的列表,那么您需要将letsencrypt插件添加到广泛的加载插件列表(默认情况下,只有web插件),设置--load选项。例如,--load=web,letsencrypt

错误跟踪器

错误在GitHub Issues上进行跟踪。在遇到问题的情况下,请检查是否已经报告了您的问题。如果您是第一个发现它的人,请通过提供详细且受欢迎的反馈来帮助我们解决问题这里

致谢

贡献者

ACME实现

图标

维护者

Odoo Community Association

此模块由OCA维护。

OCA,或Odoo社区协会,是一个非营利组织,其使命是支持Odoo功能的协作开发并推广其广泛使用。

要为此模块做出贡献,请访问https://odoo-community.org

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

此版本未提供源代码分发文件。请参阅有关生成分发存档的教程。

构建分发

odoo11_addon_letsencrypt-11.0.1.0.0-py2.py3-none-any.whl (77.7 kB 查看哈希值)

上传时间 Python 2 Python 3

支持