Certbot(独立)+ Nginx + Chef的授权问题

时间:2017-08-10 20:06:57

标签: nginx chef lets-encrypt certbot

我在服务器上使用Nginx,并希望使用Let的加密证书在HTTPS上提供我的应用程序。在部署应用程序代码之前,我在新服务器上执行以下操作:

  • 安装Nginx
  • 将以下nginx配置文件写入sites-available,以获取certbot。然后符号链接到sites-enabled并重新启动nginx

    server {
      listen 80;
      server_name foo.bar.com;
      allow all;
    
      location ^~ /.well-known/acme-challenge/ {
        proxy_pass http://0.0.0.0:22000;
     }
    }
    
  • 然后运行certbot

    certbot certonly -m foo@bar.com --standalone --http-01-port 22000 --preferred-challenges http --cert-name bar.com -d foo.bar.com --agree-tos --non-interactive
    

手动运行时,以上所有工作都很正常。

我使用Chef来自动完成上述过程。 Certbot在我第一次部署时得到404。它适用于后续部署。

记下以下细节:

  • 只有当我刚刚安装Nginx然后通过Chef运行我的部署脚本并在后续部署中消失时才会出现这种现象。
  • 我使用自定义LWRP在Chef expcept nginx安装中运行上述步骤。 Nginx安装由chef_nginx负责。我已经粘贴了运行上述步骤的LWRP片段。

    vhost_file = "#{node['certbot']['sites_configuration_path']}/#{node['certbot']['sites_configuration_file']}"
    template vhost_file do
      cookbook 'certbot'
      source 'nginx-letsencrypt.vhost.conf.erb'
      owner 'root'
      group 'root'
      variables(
        server_names:   new_resource.sans,
        certbot_port:   node['certbot']['standalone_port'],
        mode:           node['certbot']['standalone_mode']
      )
      mode 00644
      only_if "test -d #{node['certbot']['sites_configuration_path']}"
    end
    
    nginx_site node['certbot']['sites_configuration_file']
    
  • certbot端口standalone上使用22000

即使在首次部署时,如何使工作正常?

0 个答案:

没有答案