Устаревшая директива 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
файл должен содержать
- сертификат, например, yourdomain.com
- сертификат первого промежуточного ЦС, подписанный корневым ЦС (например, ЦС первичного промежуточного сервера класса 1 класса StartCom)
- сертификат второго промежуточного 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. Формат такой же.