certbot SSL CertFact停止处理nginx配置更新

certbot SSL CertFact停止处理nginx配置更新,nginx,lets-encrypt,certbot,Nginx,Lets Encrypt,Certbot,我通过AWS CodeDeploy在AWS EC2上通过Bitbucket安装了一个Django应用程序设置CI/CD 在AWS代码中,在后安装下部署挂钩 hooks: AfterInstall: - location: scripts/ngnix.sh timeout: 6000 runas: ubuntu 而nginx.sh脚本是 #!/usr/bin/env bash mkdir -p /etc/nginx/sites-enabled mkdir -

我通过AWS CodeDeploy在AWS EC2上通过Bitbucket安装了一个Django应用程序设置CI/CD

在AWS代码中,在后安装下部署挂钩

hooks:
  AfterInstall:
    - location: scripts/ngnix.sh
      timeout: 6000
      runas: ubuntu
nginx.sh脚本是

#!/usr/bin/env bash

mkdir -p /etc/nginx/sites-enabled
mkdir -p /etc/nginx/sites-available
sudo mkdir -p /etc/nginx/log/
sudo unlink /etc/nginx/sites-enabled/*
sudo cp /path_to_app/configs/nginx.conf /etc/nginx/sites-available/app-host.conf
sudo ln -s /etc/nginx/sites-available/app-host.conf /etc/nginx/sites-enabled/app-host.conf
sudo /etc/init.d/nginx stop
sudo /etc/init.d/nginx start
sudo /etc/init.d/nginx status
但每次通过CI/CD管道运行此脚本时,SSL都会停止工作,并且无法使用https访问网站

要重新启用SSL,我必须手动运行

sudo certbot --nginx
并重新配置SSL证书


SSL不工作可能会出现什么问题,以及如何实现自动化?

certbot从Lets获取SSL证书,并将这些证书加密并保存在您的计算机上。您可以运行命令
sudo certbot certificates
查看证书路径

Found the following certs:
  Certificate Name: example.com
    Domains: example.com, www.example.com
    Expiry Date: 2017-02-19 19:53:00+00:00 (VALID: 30 days)
    Certificate Path: /etc/letsencrypt/live/example.com/fullchain.pem
    Private Key Path: /etc/letsencrypt/live/example.com/privkey.pem
您需要将位于
证书路径
私钥路径
的文件存储在一个持久化卷中,这样它们就不会在每次部署应用程序时被清除。在您的情况下,我认为这些证书文件正在被删除,这就是您必须运行命令
sudo certbot--nginx
来获取新证书的原因