无需交互即可安装Certbot letsencrypt

时间:2018-03-08 12:14:27

标签: bash ssl server lets-encrypt certbot

我正在编写一个bash脚本,它在新安装的服务器中引导整个项目基础结构,我想用letcecrypt certbot配置ssl安装。在我执行line之后:

certbot --nginx -d $( get_server_name ) -d www.$( get_server_name ).com

我被提示几个问题。可以在没有任何交互的情况下运行certbot,同时将一些参数作为参数传递吗?

2 个答案:

答案 0 :(得分:15)

您可以通过添加以下选项来“静默”运行certbot:

--non-interactive --agree-tos -m webmaster@example.com

此处提供了完整的配置选项列表:

https://certbot.eff.org/docs/using.html

答案 1 :(得分:1)

Certbot提供了多个inline flags and "subcommands"(其昵称),可以帮助自动使用Bash或Shell脚本生成免费SSL证书的过程。

@match提到的最相关的标志是:

--non-interactive

但是实际上,该标志不是很有用,因为它作用不大。例如,如果脚本中缺少关键标志,则证书仍将无法生成。坦率地说,我认为Certbot取消上述标记会更好,因为这会引起误解。

以下是所需的最低标志:

  1. --agree-tos
  2. --register-unsafely-without-email ...或... -m username@example.com
  3. -d www.example.com

您还必须指定所需的Let's Encrypt installer plugin(环境)类型,例如,在大多数情况下,例如WordPress Web服务器,您可以从“独立”或“手动”等中进行选择,您应该选择“ webroot”,以便Certbot可以通过公共根轻松地验证所有权(确保未阻止对/.well-known*的访问):

--webroot -w /var/www/html/

这是我们use in SlickStack安装SSL证书的完整命令:

## install Certbot SSL certificate ##
certbot certonly --noninteractive --webroot --agree-tos --register-unsafely-without-email -d ${SITE_DOMAIN} -w /var/www/html/