跳转到主要内容

从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版本的情况下配置示例。

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

此插件依赖于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,其中N0开始。可以添加的域名数量受速率限制的影响。

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

用法

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

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

Try me on Runbot

有关更多信息,请访问

深入配置

此模块使用openssl生成适合提交给letsencrypt.org的CSRs。为了做到这一点,它将/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上跟踪。如果出现问题,请检查是否已报告您的问题。如果是您首先发现的,请通过提供详细且受欢迎的反馈来帮助我们解决问题here

致谢

贡献者

ACME实现

图标

维护者

Odoo Community Association

此模块由OCA维护。

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

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

项目详情


下载文件

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

源代码分发

此版本没有可用的源代码分发文件。请参阅生成分发存档的教程

构建分发

由以下提供支持