SSL-сертификат certbot перестает работать при обновлении конфигурации nginx

У меня есть CI/CD установки приложения Джанго через Bitbucket на AWS EC2 через AWS CodeDeploy.

В хуках 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.

Чтобы снова включить SSL, мне нужно вручную запустить

sudo certbot --nginx

И перенастройте SSL-сертификат.

В чем может быть проблема не работы SSL и как это автоматизировать?

Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
0
0
56
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Certbot получает ssl-сертификаты от Lets Encrypt и хранит эти сертификаты на вашем компьютере. Вы можете запустить команду 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, чтобы получить новый сертификат.

Другие вопросы по теме

Похожие вопросы