java - может ли сертификат быть проверен с помощью корневого CA или CA-дедушки без родительского CA

Я пытаюсь сделать это на Java, но я думаю, что это общий вопрос сертификата. У меня есть корневой CA, промежуточный CA1, выданный корневым CA, промежуточный CA2, выданный промежуточным CA1, и сертификат, выданный промежуточным CA2.

rootCA -> interCA1 -> interCA2 -> сертификат

Можно ли проверить сертификат с помощью interCA1, не зная interCA2?

cert.verify(interCA2.getPublicKey()); // ok
interCA2.verify(interCA1.getPublicKey()); // ok
cert.verify(interCA1.getPublicKey()); // NOT ok -> is there any way to fix or bypass this? 

1 ответ

Решение

Вы не можете сделать это, потому что interCA1 не является эмитентом сертификата.

cert.verify(interCA1.getPublicKey());

Сертификат подписывается с помощью закрытого ключа сертификата-эмитента, поэтому вам необходим его открытый ключ для проверки подписи. Поэтому для проверки сертификата необходима полная цепочка сертификации.

Другие вопросы по тегам