Нет, перекрестные сертификаты и перекрестная подпись на самом деле не разные вещи, и это правда, что как промежуточные ЦС, так и то, что мы обычно называем корневыми ЦС, могут проходить перекрестную сертификацию.
Ваше замешательство может быть связано с тем, что неясно, что такое корень. Существует множество ЦС, которые хотят быть корневыми, выдают себя за корневые, публикуют корневые сертификаты, подают заявки на включение в программы корневых сертификатов и т. д. Но каждый доверяет, т.е.каждый из нас в конечном счете решает, каким ЦС мы доверяем как корневым, хотя большинство из нас просто принимают значения доверия по умолчанию, установленные поставщиками браузеров или систем (Microsoft, Apple, Mozilla/Firefox, Sun/Oracle/Java, Goolge/Chrome и Android и т. д.). ). Выглядит ли данный ЦС как корень, может зависеть от того, кто его ищет. Например, у GeoTrust долгое время был свой опубликованный корень, но также были кросс-сертификаты для одного и того же ЦС (может быть, несколько, точно помню только один) от Equifax. Некоторые люди или системы доверяли корневым центрам GeoTrust и рассматривали их как корневые центры сертификации; некоторые этого не сделали, но доверяли Equifax и, таким образом, доверяли GeoTrust как подчиненному ЦС Equifax. Так в той ситуации GeoTrust был рутом или нет?
Более актуальный и сложный пример — LetsEncrypt. Когда они начали работу, они создали свой собственный корень «ISRG» и начали подавать заявки на его принятие, но изначально у них были два промежуточных (подчиненных) ЦС LetsEncrypt X3 и LetsEncrypt X4 (я сокращаю имена для удобства), подписанные корнем DST. X3, установленный корень, чтобы позволить им быстро начать, не дожидаясь, пока их собственный корень будет принят. (Технически они начали с промежуточных продуктов X1 и X2, но их быстро заменили X3 и X4 из-за проблемы, которую я не помню, например, они не работали с MSIE или что-то в этом роде.) Только в этом году, примерно через 5 лет. благодаря усилиям они, наконец, добились того, что ISRG Root X1 был принят настолько широко, что они могли переключиться на его использование; тем временем они добавили ISRG Root X2, который AFAICT еще не так широко принят. Так что теперь они используют эта трастовая структура:
промежуточные соединения R3 и R4 представляют собой в первую очередь привязаны (темные линии) к ISRG Root X1, но они также может быть привязанным (серые линии) к DST Root X3, если хотите
для тех (несколько) систем, которые не доверяют ISRG X1, все еще существует перекрестный (также называемый мостовым) сертификат от DST X3.
промежуточные соединения E1 и E2 связаны с ISRG X2, который может быть корневым, но для (многих) систем, которые не доверяют ISRG X2, он также перекрестно сертифицирован ISRG X1 (и, следовательно, косвенно DST X3, если необходимо)
Это осложняется тем, что DST X3 сертификат истекает через несколько недель (2021-09-30). Стандартные правила не говорят, должна ли проверка цепочки с использованием корневого сертификата с истекшим сроком действия завершаться неудачей, отчасти потому, что они вообще не указывают корневой сертификат, а только определенные поля; почти во всех программах удобно использовать сертификат в качестве структуры данных для корневого (также называемого привязкой) идентификатора и ключа, но это не обязательно. Таким образом, цепочки, использующие DST X3, могут вскоре стать недействительными, а могут и не стать, в зависимости от факторов, которые большинство пользователей не смогут понять, что не очень хорошо.
корень сертификат всегда самоподписывается, да. (Это показано стрелками замкнутого контура на диаграмме LetsEncrypt.) Однако ЦС, имеющий корневой сертификат, может также иметь перекрестный сертификат или даже несколько, которые не являются самоподписанными, но предназначены для ЦС, который можно помечать и рассматривать как корневой ЦС. Прозрачный как грязь?