Разница между SSLCACertificateFile и SSLCertificateChainFile

Я предоставляю SSL-страницы на своем веб-сервере, и у меня есть вопрос. В чем разница между SSLCACertificateFile и SSLCertificateChainFile?

Когда я использую SSLCertificateChainFile, я получал предупреждения от японского браузера сотового телефона, но когда я использую браузер ПК (например, IE, FF), проблем не возникало. С другой стороны, SSLCACertificateFile не вызвал никаких проблем для обоих браузеров.

Есть ли разница, когда браузеры подключаются к apache?


person nam    schedule 14.12.2009    source источник
comment
это слишком просто. root sig не находится в корневом хранилище мобильного телефона, что является обычным явлением.   -  person    schedule 22.06.2010


Ответы (2)


SSLCertificateChainFile был правильным вариантом, но эта директива стала устаревшей с Apache 2.4. 8. Эта директива вызвала отправку указанного файла вместе с сертификатом всем подключающимся клиентам.

SSLCACertificateFile (далее "CACert") заменяет SSLCertificateChainFile (далее "Цепочка" "), а также позволяет использовать соответствующий сертификат для подписи сертификатов клиента. Такой вид аутентификации встречается довольно редко (по крайней мере, на данный момент), и если вы не используете его, IMHO нет причин расширять его функциональность, используя CACert вместо Chain. С другой стороны, можно утверждать, что дополнительная функциональность не вредит, а CACert охватывает все случаи. Оба аргумента верны.

Излишне говорить, что если вы спросите поставщика сертификатов, они всегда будут настаивать на CACert через цепочку, поскольку это дает им еще одну вещь (сертификаты клиентов), которые они потенциально могут продать вам в будущем. ;)

person Community    schedule 04.04.2011
comment
Еще одна вещь, которую следует учитывать, - это алгоритм. Но будьте осторожны: предоставление цепочки сертификатов работает только в том случае, если вы используете один сертификат сервера (RSA или DSA). Если вы используете пару связанных сертификатов RSA + DSA, это будет работать, только если на самом деле оба сертификата используют одну и ту же цепочку сертификатов. Иначе в этой ситуации браузеры запутаются. ---- http://httpd.apache.org/docs/2.0/mod/mod_ssl.html#sslcertificatechainfile - person Eddie; 05.07.2012
comment
@Eddie Правильно, хотя я считаю важным отметить, что это одинаково влияет на оба варианта. Кроме того, вероятно, стоит отметить, что сертификаты DSA (к счастью) исчезающе редки. - person BMDan; 26.03.2013

На самом деле, оба варианта могут быть допустимыми.

Используйте SSLCertificateChainFile для публикации сертификата, подписанного общедоступным центром сертификации (VeriSign, RapidSSL и т. Д.)

Используйте SSLCACertificateFile, чтобы предоставить свой «частный» ЦС, который может выдавать клиентские сертификаты, которые вы можете распространять среди некоторых выбранных пользователей. Эти client сертификаты на самом деле отлично подходят для аутентификации (по сравнению с базовой парольной аутентификацией) и, как правило, не требуются для распространения общедоступным центром сертификации (следовательно, вы можете сэкономить немного денег).

Итак, если вы хотите добавить безопасную авторизацию к какой-либо части вашего веб-сайта, сделайте следующее:

<Directory /var/www/html/authorized>
  SSLVerifyClient require
  SSLVerifyDepth  5

  SSLOptions +StrictRequire
  SSLUserName SSL_CLIENT_S_DN_CN
  SSLRequireSSL
</Directory>

Просто для краткого пояснения SSLUserName SSL_CLIENT_S_DN_CN установит для аутентифицированного пользователя имя CommonName сертификата, а не всю тему x509 '/ OU = Foo / CN = ...'.

person Alexander Pogrebnyak    schedule 04.04.2013