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


8

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

Ответы:


8

Учитывая, что вы используете это в своей конфигурации 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


Хорошо, если я вас правильно понял, я должен создать файл со следующим в следующем порядке: 1) ssl.crt; 2) sub.class1.server.sha2.ca.pem; 3) что? Пожалуйста, объясните, какие сертификаты должны быть добавлены в третьих (и, возможно, в дальнейшем) местах.
Нейротрансмиттер

Это зависит от фактической цепочки, я имею в виду количество центров сертификации, участвующих в подписании вашего сертификата. Цепочка может состоять только из 2 CA. например, корневой CA и один промежуточный CA. Но он может состоять из корневого центра сертификации и нескольких промежуточных центров сертификации. Ваш файл ssl.crt должен содержать все промежуточные сертификаты CA сверху вниз. По этой причине от вашего конкретного случая зависит, как должен выглядеть ваш файл ssl.crt.
Фольцер

Как узнать, какие центры сертификации участвуют в подписании сертификата?
Нейротрансмиттер

2
Думаю, для новичка построение цепочки не тривиально. Я обычно бегаю, openssl x509 -subject -issuer -noout -in certificate.of.yourdomain.crtчтобы увидеть эмитента. Затем я загружаю сертификат выдачи с веб-сайта моего ЦС, в вашем случае: launchsl.com/certs . Затем выполните команду для этого сертификата. Повторяйте до тех пор, пока проблема не станет равной теме, что означает, что сертификат является самоподписанным и является сертификатом корневого центра сертификации. добавьте все эти файлы, кроме корневого сертификата CA, в файл ssl.crt и все готово.
Фольцер

Спасибо за поддержку, я следил за цепочкой и сгенерировал комбинированный сертификат. Но по какой-то причине тест Qualys SSL показывает, что клиенты, которые подключаются к моему хосту, должны дополнительно загрузить CA Первичного промежуточного сервера StartCom Class 1, который я определенно включил в комбинированный сертификат ( снимок экрана ). Это странно.
Нейротрансмиттер

1

Хорошо, наконец-то понял это в последнее время и решил опубликовать детали в форме ответа.

Теперь 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 Test .

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.