Устаревшая директива 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 директива, но я не знаю, какие ключи и в каком порядке мне следует объединить в этот файл.

2 ответа

Решение

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

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

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

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

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

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

Так что на сайте conf это будет просто:

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

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

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

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