certbot SSL CertFact停止处理nginx配置更新
我通过AWS CodeDeploy在AWS EC2上通过Bitbucket安装了一个Django应用程序设置CI/CD 在AWS代码中,在后安装下部署挂钩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 -
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
来获取新证书的原因