从letsencrypt.org请求SSL证书

odoo10-addon-letsencrypt的Python项目详细描述


License: AGPL-3

从letsencrypt.org请求SSL证书

编写此模块是为了让您的odoo安装请求ssl证书 从https://letsencrypt.org自动。

安装

安装后,此模块将为位于的帐户生成私钥 在$data_dir/letsencrypt/account.key中自动创建letsencrypt.org。如果你 要或需要使用您自己的帐户密钥,请替换该文件。

要使证书请求正常工作,您的站点需要通过普通的 http,请参见下面的配置示例,以防强制客户端 SSL版本。

安装后,触发cronjobupdate letsencrypt certificates并 注意日志中的消息。

此加载项依赖于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

配置

此加载项为配置中指定的域请求证书 参数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代理配置为使用此文件作为证书。

Try me on Runbot

有关详细信息,请访问:

深度配置

此模块使用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

学分

贡献者

维护人员

Odoo Community Association此模块由OCA维护。

oca,或odoo社区协会,是一个非营利性组织 任务是支持odoo特性和 促进其广泛应用。

若要对此模块作出贡献,请访问https://odoo-community.org

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java快乐,你知道吗   java如何向字符串中的单个单词添加字母   java问题,时间单元增加24分钟   java maven焊接实例失败   用java发送带身份验证的Soap请求   java列表在ListView中找到了信标   java为什么我的图像在y值增加时不会移动?   java错误:找不到适合JsonArrayRequest的构造函数   java如何在不阻塞的情况下将一个对象转换为另一个对象   通过urlconnect的java Kerberos凭据委派?   java是否可以循环一个链接列表来检查特定链接中的2个属性(2个字符串)?   在snackbar中将值分配给变量时发生java错误   java为什么不能更改插入排序的while循环中语句的顺序?