Найти в Дзене

Apache — can't retrieve issuer certificate!

На одном из серверов в логах apache увидел такую ошибку: [ssl:error] [pid 1237] AH02217: ssl_stapling_init_cert: can't retrieve issuer certificate! [subject: CN=*.example.com / issuer: CN=GlobalSign GCC R6 AlphaSSL CA 2023,O=GlobalSign nv-sa,C=BE / serial: 11122233
3444555666777CCC / notbefore: Nov 22 14:16:04 2024 GMT / notafter: Dec 24 14:16:03 2025 GMT]
[ssl:error] [pid 1237] AH02604: Unable to configure certificate test.example.com:443:0 for stapling Ошибка проявляется при включённой настройке в конфиге сайта: SSLUseStapling on OCSP Stapling (Online Certificate Status Protocol Stapling) — это механизм оптимизации проверки отзыва SSL/TLS-сертификатов, который повышает безопасность и производительность. Вместо того чтобы клиент (браузер) самостоятельно запрашивал у OCSP-сервера Удостоверяющего Центра (CA) статус сертификата "не отозван ли он?", веб-сервер (Apache) периодически сам получает свежую подписанную квитанцию от OCSP-сервера и прикрепляет (staple) её к TLS-рукопожатию. Ошибк

На одном из серверов в логах apache увидел такую ошибку:

[ssl:error] [pid 1237] AH02217: ssl_stapling_init_cert: can't retrieve issuer certificate! [subject: CN=*.example.com / issuer: CN=GlobalSign GCC R6 AlphaSSL CA 2023,O=GlobalSign nv-sa,C=BE / serial: 11122233
3444555666777CCC / notbefore: Nov 22 14:16:04 2024 GMT / notafter: Dec 24 14:16:03 2025 GMT]
[ssl:error] [pid 1237] AH02604: Unable to configure certificate test.example.com:443:0 for stapling

Ошибка проявляется при включённой настройке в конфиге сайта:

SSLUseStapling on

OCSP Stapling (Online Certificate Status Protocol Stapling) — это механизм оптимизации проверки отзыва SSL/TLS-сертификатов, который повышает безопасность и производительность.

Вместо того чтобы клиент (браузер) самостоятельно запрашивал у OCSP-сервера Удостоверяющего Центра (CA) статус сертификата "не отозван ли он?", веб-сервер (Apache) периодически сам получает свежую подписанную квитанцию от OCSP-сервера и прикрепляет (staple) её к TLS-рукопожатию.

  • Производительность — не нужно ждать ответа от OCSP-сервера
  • Конфиденциальность — CA не получает информацию о ваших посетителях
  • Надёжность — не зависит от доступности OCSP-серверов CA

Ошибка AH02217 означает, что Apache не может инициализировать stapling, потому что не может построить цепочку доверия для проверки статуса. Это не значит, что stapling не работает вообще, а что он может быть настроен некорректно. В моём случае сервер не смог найти цепочку сертификатов, а именно корневой и промежуточный сертификат.

В Apache за stapling отвечает mod_ssl. Для Apache до версии 2.4.8 fullchain указывается в параметре SSLCertificateChainFile. Для Apache 2.4.8+ fullchain указывается в SSLCertificateFile, там же где и сам сертификат в формате:

-----BEGIN CERTIFICATE-----
СЕРТИФИКАТ ДОМЕНА В BASE64
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
ПРОМЕЖУТОЧНЫЙ СЕРТИФИКАТ В BASE64
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
КОРНЕВОЙ СЕРТИФИКАТ В BASE64
-----END CERTIFICATE-----

Добавил туда цепочку и проблема ушла.

Какие могут быть ещё параметры в конфигурации:

<VirtualHost *:443>
ServerName example.com

SSLEngine on
SSLCertificateFile /etc/ssl/example.com/cert.pem
SSLCertificateKeyFile /etc/ssl/example.com/privkey.pem
SSLCertificateChainFile /etc/ssl/example.com/chain.pem

# Включаем stapling
SSLUseStapling On

# Где хранить кэш stapling (shared memory)
SSLStaplingCache shmcb:/var/run/ocsp(128000)

# Файл доверенных CA для проверки OCSP-ответа
SSLTrustedCAFile /etc/ssl/certs/ca-bundle.pem

# Таймауты и поведение при ошибках респондера
SSLStaplingResponderTimeout 5
SSLStaplingReturnResponderErrors Off

# Опционально форсим адрес OCSP (обычно не требуется)
# SSLStaplingForceURL http://ocsp.ca.test/
</VirtualHost>
  • SSLUseStapling On и SSLTrustedCAFile — минимум, чтобы stapling заработал.
  • SSLStaplingCache — нужен для межпроцессного кэша; используйте shmcb: с достаточным размером. Кэш не переживает перезагрузку ОС (это не persistent storage).
  • SSLStaplingReturnResponderErrors Off — если OCSP-узел возвращает ошибку, Apache не будет ее прикладывать к хендшейку, лучше вообще без ответки, чем с ошибкой.
  • SSLStaplingForceURL пригодится только при нештатных сценариях (нестандартная AIA). Используйте осторожно: если CA меняет endpoint, вы останетесь с битой настройкой.

Логи Apache могут помочь: ищите AH01973 (ошибка обновления OCSP), AH01941 (проблемы с верификацией), AH01929 (stapling выключен для сертификата). У меня была ошибка AH02604 (Unable to configure certificate test.example.com:443:0 for stapling) и AH02217 (apache не может инициализировать stapling).

Источник:

Apache — can't retrieve issuer certificate! | internet-lab.ru

💰 Поддержать проект

Если вам понравилась статья, то ставьте 👍🏻 каналу.
Пишите комментарии, задавайте вопросы, подписывайтесь.