Назад | Перейти на главную страницу

Ошибка сертификатов Apache 2.4 / SSL: AH01903: не удалось настроить цепочку сертификатов CA

Недавно мне пришлось обновить один из моих SSL-сертификатов на сервере Apache 2.4 / Mod_ssl.

У меня есть 2 Vhosts, без SNI, каждый из которых работает на отдельной сетевой карте. До сих пор оба сертификата были Globalsign OrganizationSSL, один относился к URL, а другой - подстановочный. Все это работало нормально.

Мой клиент хотел иметь SSL с расширенной проверкой. Я загрузил корневой ЦС и промежуточный сертификат, необходимые для работы этой цепочки. Но после переключения сертификатов мой Apache отказывается инициализировать цепочку.

У меня следующие ошибки:

Конфигурация моего Vhost SSL:

Vhost 1 (Организация SSL):

SSLEngine on
    SSLProtocol all -SSLv2 -SSLv3
    SSLCipherSuite ALL:!ADH:!EDH:!DHE:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
    SSLHonorCipherOrder     on
    SSLCertificateFile /path/to/organization.crt
    SSLCertificateKeyFile /path/to/server.key
    SSLCertificateChainFile /path/to/intermediate.pem

Vhost 2 (SSL с расширенной проверкой):

SSLEngine on
    SSLProtocol all -SSLv2 -SSLv3
    SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
    SSLCACertificateFile /path/to/gs_root_ca.crt
    SSLCertificateChainFile /path/to/intermediate.crt
    SSLCertificateFile /path/to/extended_validation.crt
    SSLCertificateKeyFile /path/to/server2.key

Я не специалист по SSL и не понимаю, почему сертификаты SSL для расширенной проверки и организации не могут сосуществовать.

Я пытался удалить один Vhost, а другой, он работает отлично. Поэтому я был вынужден отключить наименее используемый виртуальный хост, чтобы мой основной производственный бэк-офис работал.

Вы когда-нибудь сталкивались с такой ошибкой? Это нормальное поведение? Что я могу сделать, чтобы оба моих сайта снова работали?

Спасибо за ваш опыт!

Вы его неправильно настраиваете.

Вспомним:

  • SSLCertificateKeyFile загружает закрытый ключ (у вас все хорошо)
  • SSLCertificateFile загружает цепочка сертификатов сервера. Это сертификат сервера и его подписывающий ЦС, отсортированные от листа (сертификат) к корневому (ЦС более высокого уровня).
  • SSLCertificateChainFile устарела в apache 2.4, поэтому удалите этот.
  • SSLCACertificateFile загружает центры сертификации для клиентов, которые будут аутентифицироваться через SSL с помощью сертификата клиента. ЭТО ТО, ЧТО ВЫ ХОТИТЕ ИСПОЛЬЗОВАТЬ ДЛЯ SSL CLIENT AUTH затем.

Примечание: Ваш Ciphersuite на первый взгляд кажется очень некорректным и небезопасным. Стоит проверить изменения и в этом.

редактировать на основе комментариев. Для 2.4.6 и ранее вам следует:

  • SSLCertificateFile загружает сертификат сервера.
  • SSLCertificateChainFile загружает Цепочка сертификатов сервера.
  • SSLCACertificateFile загружает центры сертификации для клиентов, которые будут аутентифицироваться через SSL с помощью сертификата клиента. ЭТО ТО, ЧТО ВЫ ХОТИТЕ ИСПОЛЬЗОВАТЬ ДЛЯ SSL-КЛИЕНТА AUTH затем.