Устаревшая директива 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.