Обновление SSL-сертификата для gitlab с помощью certbot и позволяет шифровать

Я запускаю gitlab на Ubuntu 14. Срок действия ранее настроенного сертификата истек (запись cron для обновления не была настроена). Я пытаюсь настроить certbot (с помощью давайте шифровать), чтобы обновить сертификат, а затем настроить запись crontab для автоматического обновления. Когда я запускаю certbot, я получаю сообщение, скопированное ниже (есть место, где я могу получить более подробное сообщение об ошибке):

команда выполняется:

./certbot-auto certonly --webroot -w /opt/gitlab/ssl -d git.xyz.com

git.xyz.com является действительным доменом (я заменил фактический домен на xyz). Каталог /opt/gitlab/ssl существует, и пользователь, используемый для запуска команды, имеет права на чтение / запись для этого каталога и его содержимого.

Ошибка Ошибка процедуры авторизации. git.xyz.com (http-01): urn:acme:error:connection:: Серверу не удалось подключиться к клиенту для проверки домена:: Не удалось подключиться к git.xyz.com

ВАЖНЫЕ ЗАМЕТКИ:

- The following errors were reported by the server:

   Domain: git.xyz.com
   Type:   connection
   Detail: Could not connect to git.xyz.com

   To fix these errors, please make sure that your domain name was
   entered correctly and the DNS A record(s) for that domain
   contain(s) the right IP address. Additionally, please check that
   your computer has a publicly routable IP address and that no
   firewalls are preventing the server from communicating with the
   client. If you're using the webroot plugin, you should also verify
   that you are serving files from the webroot path you provided.  

Любые мысли о том, как я могу решить эту проблему лучше?

забыл упомянуть: я могу получить доступ к URL-адресу из внешней сети (имя домена указано правильно), и в настоящее время не настроен брандмауэр для остановки трафика на порту 80/443 (я даже отключил брандмауэр для проверки).

1 ответ

Решение

Я не уверен, что это поможет, но, по крайней мере, я мог представить, что это проблема:

  • Вы автоматически перенаправляете на https при подключении через http,
  • Это перенаправление также применимо к Let's Encrypt, поэтому они получат ваш недействительный сертификат из-за даты.
  • На этом этапе соединение не будет успешным, что приведет к ошибке, показанной вам.
  • Кроме того, вы используете HSTS, Я не уверен, что Let's Encrypt уважает этот заголовок, если они когда-то видели его.

Так что делать? Я тоже не уверен, но вот несколько советов:

  • Отключить http в https перенаправьте и попробуйте снова.
  • Если HSTS уважается:

    • Установить HSTS заголовок чего-то очень короткого, например, одну секунду, поместите эту конфигурацию на место, снова запустите клиент Let's Encrypt, чтобы он получил новый заголовок, отключите перенаправление, подождите некоторое время и снова запустите клиент.

    • Если это не работает: получите другой сертификат, действительный, например, выданный StartSSL, установите его и попробуйте снова.

На будущее:

  • Настройте автоматическое обновление сертификата и, кроме того, включите мониторинг, который, по крайней мере, предупредит вас, если что-то подобное может произойти снова, до того, как это произойдет.

Сделай что-нибудь хорошее:

  • Создайте заявку или напишите сообщение на их форум / в электронное письмо, объясняющее, что произошло, и спрашивающее, могут ли они проверить эти ошибки, и дайте людям подсказку (лучше сообщение об ошибке).

(Незначительный: если вы не хотите делать свой домен общедоступным, удалите его из своего сообщения.)

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