После множества поисков я не нашел, как сделать эквивалент следующей команды в коде Java:
openssl pkcs12 -cacerts -in /path/to/file.p12 -noout
чтобы получить только сертификаты CA из этого p12 или openssl pkcs12 -clcerts -in /path/to/file.p12 -noout, чтобы получить сертификат
В java я загружаю file.p12, поэтому все эти сертификаты хранятся в хранилище ключей PKCS12, но не могу различить, какой сертификат CA, а какой - простой. Как это сделать ?
(В моем p12 у меня есть сертификат и сертификат CA N, который его подписал: CA 2 подписал сертификат, CA 3 подписал сертификаты CA 2 ..., CA N подписал сертификаты CA N-1)
2) Другой вопрос в том же порядке: есть ли способ заказать список сертификатов x509 для получения (ca 1, ... ca N), который я использовал:
CertificateFactory certFact = CertificateFactory.getInstance("X.509");
CertPath path = certFact.generateCertPath(myCertifList);
Но список нужно уже заказывать вопреки тому, на что я надеялся.
3) Гарантирован ли порядок сертификатов fullchain? Что, если Let's Encrypt, например, изменит свою стратегию и изменит способ построения цепочки и полной цепочки таким образом, чтобы мы не могли полагаться на фактический заказ сертификата? Большое спасибо за помощь!