certbot SSL certifact 停止处理 nginx 配置更新
certbot SSL certifact stops working on nginx configuration update
我有一个 Django 应用程序设置 CI/CD 通过 AWS EC2 上的 Bitbucket 通过 AWS CodeDeploy。
在 AfterInstall
下的 AWS CodeDeploy 挂钩中
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.[=14= 访问该网站]
要重新启用 SSL,我必须手动 运行
sudo certbot --nginx
并重新配置 SSL 证书。
SSL
不工作可能是什么问题以及如何自动执行此操作?
certbot 从 Lets Encrypt 获取 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
您需要将位于 Certificate Path
和 Private Key Path
的文件存储在持久卷中,这样它们就不会在您每次部署应用程序时都被清除。在你的情况下,我认为这些证书文件正在被删除,这就是你必须 运行 命令 sudo certbot --nginx
来获取新证书的原因。
我有一个 Django 应用程序设置 CI/CD 通过 AWS EC2 上的 Bitbucket 通过 AWS CodeDeploy。
在 AfterInstall
下的 AWS CodeDeploy 挂钩中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.[=14= 访问该网站]
要重新启用 SSL,我必须手动 运行
sudo certbot --nginx
并重新配置 SSL 证书。
SSL
不工作可能是什么问题以及如何自动执行此操作?
certbot 从 Lets Encrypt 获取 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
您需要将位于 Certificate Path
和 Private Key Path
的文件存储在持久卷中,这样它们就不会在您每次部署应用程序时都被清除。在你的情况下,我认为这些证书文件正在被删除,这就是你必须 运行 命令 sudo certbot --nginx
来获取新证书的原因。