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

Устаревшая директива Apache SSLCertificateChainFile (AH02559)

Недавно я обновил Apache с 2.2 до 2.4, и я не могу понять, как отказаться от SSLCertificateChainFile директива.

Ошибка:

me@jessie:~$ sudo apache2ctl configtest 
AH02559: The SSLCertificateChainFile directive (/etc/apache2/sites-enabled/https.conf:103) is deprecated, SSLCertificateFile should be used instead
Syntax OK

Мои текущие настройки:

SSLCertificateFile    /etc/apache2/cert/ssl.crt
SSLCertificateKeyFile /etc/apache2/cert/ssl.key
SSLCertificateChainFile /etc/apache2/cert/sub.class1.server.sha2.ca.pem
SSLCACertificateFile /etc/apache2/cert/ca.pem

Сертификат подписан StartCOM. Инструкция говорит, что теперь вся цепочка должна быть в одном файле, указанном SSLCertificateFile директиву, но я не знаю, какие ключи и в каком порядке я должен присоединить к этому файлу.

Учитывая, что вы используете это в своей конфигурации apache:

SSLCertificateFile    /etc/apache2/cert/ssl.crt
SSLCertificateKeyFile /etc/apache2/cert/ssl.key

В /etc/apache2/cert/ssl.crt файл должен содержать

  1. сертификат, например yourdomain.com
  2. сертификат первого промежуточного ЦС, подписанный корневым ЦС (например, ЦС первичного промежуточного сервера StartCom класса 1)
  3. сертификат второго промежуточного ЦС, подписанный первым промежуточным ЦС (если в вашей цепочке сертификатов есть второй промежуточный ЦС)

Вам необходимо поместить все промежуточные сертификаты ЦС в файл crt. В зависимости от цепочки сертификатов вашего сертификата будет задействовано разное количество центров сертификации.

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

В /etc/apache2/cert/ssl.key файл останется прежним, то есть он будет содержать ключ для сертификата yourdomain.com

Ладно, наконец-то разобрался в последнее время и решил выложить подробности в форме ответа.

Теперь StartSSL помещает сертификат в zip-архив, когда вы его извлекаете, и там много включенных архивов, один из которых особенно интересен ApacheServer.zip, форма, совместимая с Apache> 2.4. Файлы в папке Apache:

1_root_bundle.crt
2_myhost.tld.crt

Вы должны заварить SSLCertificateFile из обоих сертификатов, но в таком порядке:

cat 2_myhost.tld.crt 1_root_bundle.crt > myhost.tld_combined.crt

Итак, в конфиге сайта будет просто:

    SSLCertificateFile    /etc/apache2/cert/myhost.tld_combined.crt
    SSLCertificateKeyFile /etc/apache2/cert/myhost.tld.key

И все будет хорошо, даже Qualys SSL Test.

Это работает для StartCom StartSSL, а также для сертификатов WoSign. Формат такой же.