On 14.08.2019 18:01, Maxim Dounin wrote:

Aug 14 16:22:35 vm nginx: nginx: [warn] "ssl_stapling" ignored, host not
found in OCSP responder "ocsp.int-x3.letsencrypt .org" in the
certificate "/etc/letsencrypt/live/example.com/fullchain.pem"
Aug 14 16:23:03 vm systemd: nginx.service start operation timed out.
Terminating.
Aug 14 16:23:03 vm systemd: Failed to start nginx - high performance web
server.
Aug 14 16:23:03 vm systemd: Unit nginx.service entered failed state.
Aug 14 16:23:03 vm systemd: nginx.service failed.

Подскажите пожалуйста, каким образом можно сконфигурировать nginx, чтобы
он нормально запускался и работал на втором узле кластера даже в том
случае, когда Failover IP указывает на первый физический сервер и
виртуальная машина, запускаемая на втором физическом сервере не имеет
доступа в интернет?

Нужно либо убрать из из конфигурации всё, что требует резолвинга
имён, и соответственно требует доступа в интернет, либо сделать
этот резолвинг возможным (добавив соответствующие имена в
/etc/hosts или обеспечив работу DNS).

Включённый OCSP stapling - пытается резолвить имена OCSP-серверов
из сертификатов на старте.  Он, при этом, умеет автоматически
выключаться, если разрезолвить имя не удаётся, но, судя по всему,
сертификатов больше одного, а системный резолвер про отсутствие
интернета не в курсе и тупо ждёт таймаутов, так что случается уже
таймаут на запуск nginx'а в systemd.

Да, Вы правы, сертификатов больше одного.
Выключил ssl_stapling - теперь все запускается и работает нормально.
Спасибо!

Разве есть возможность системный резолвер научить понимать что нет интернета, если IP адрес сконфигурирован статически на CentOS 7.6?
Как это можно сделать? (Подозреваю что такой возможности нет и не будет)

Может быть можно научить nginx не использовать системный резолвер
при старте для резолвинга имен хостов OCSP responder'ов
из загружаемых им SSL сертификатов?

Не понятно, зачем nginx это делает, если в конфиге указана директива
resolver и наличие ответа от OCSP responder не является необходимым
для нормального запуска и последующей нормальной работы веб-сервера.

Может лучше было бы резолвить имена OCSP-серверов из сертификатов
не при старте а в момент первого запроса к серверу, или делать
автоматический preload ответов OCSP-серверов уже после того,
как nginx будет полностью сконфигурирован и запущен?

Потому что сейчас без интернета или при сбоях в работе системного
резолвера при включенном в конфиге OCSP stapling - nginx вообще
не запускается и это самым катастрофическим образом сказывается
на надежности работы сервера - запуск nginx завершается ошибкой
и все сайты становятся нерабочими. Это хуже чем OCSP Must-Staple.

--
Best regards,
 Gena

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить