есть кое-что, чего я не могу понять с параметром SSLCACertificateFile в Apache SSL conf. Например, у меня есть ROOT-сертификат «A», который выдал промежуточный сертификат «B». Затем я создал пару листовых сертификатов, используя B, например «L1», «L2».
Теперь, согласно документации, если я хочу доверять только L1 и L2, я должен поместить «B» и «A» в файл, на который указывает SSLCACertificateFile (если я поставлю только сертификат «B», Apache выдаст ошибку «Невозможно найти» ошибка эмитента).
Теперь давайте создадим еще один сертификат, «C», производный от «A» (корень). Будет ли apache доверять партнеру, использующему сертификат C? Для меня это «да, будет», поскольку Apache найдет эмитента «C» внутри SSLCACertificateFile, это «A»! Но я не хочу доверять C, я хочу доверять только L1 и L2.
Я что-то упускаю?
большое спасибо!
Итак, если я правильно понимаю, это структура вашего сертификата:
> ROOT cert A
|--> Intermediate Cert B
|--> Leaf Certificate L1
|--> Leaf Certificate L2
|--> Certificate C
К сожалению, если вы хотите, чтобы ваш браузер доверял только L1 и L2, тогда сертификат C должен быть подписан другим корневым сертификатом.
Это связано с природой сертификатов. Когда вы доверяете корневому сертификату A, вы, по сути, говорите: «Доверяйте всему, что подписывает этот сертификат». Он имеет предполагаемый эффект доверия к промежуточному сертификату B, как вы хотите, но вы не можете тогда сказать «не доверяйте ничему другому».