Мы получили цепочку сертификатов сервера в формате .p7b от нашего клиента, и нам нужно экспортировать в наше хранилище доверенных сертификатов клиента с помощью Java / Scala API.
Их файл сертификата содержит три сертификата: корневой, промежуточный, фактический сервер ...
Как мы можем экспортировать три из них в наше хранилище доверенных сертификатов под одним и тем же псевдонимом?
Действительно ли требуется экспортировать их под одним псевдонимом?
Это то, что мы сделали до сих пор ...
//load default cacerts first in order to export the server cert
val keystore = KeyStore.getInstance(KeyStore.getDefaultType)
keystore.load(new FileInputStream(cacertsPath), decryptedPass.toCharArray)
val cf = CertificateFactory.getInstance("X.509")
//this is the server cert we are trying to export
val bais = fullStream(customTrustFile)
val certs = cf.generateCertificates(bais) --> this returns a chain of 3 certs
certs.toArray[Certificate](new Array[Certificate](certs.size())).zipWithIndex.foreach {
case (cert, i) => keystore.setCertificateEntry("api.*.*.site-" + i, cert)
// Save the new keystore contents
keystore.store(new FileOutputStream(cacertsPath),decryptedPass.toCharArray)
Если вы видите, как мы вставляем сертификаты, он использует три псевдонима с суффиксом -1, -2, -3, поэтому мы в конечном итоге вставляем три записи в хранилище доверенных сертификатов, не уверенные, что это право вставки цепочки сертификатов.
Есть ли способ вставить цепочку сертификатов под одним псевдонимом?
Как клиент находит соответствующее доверие сервера? он использует псевдоним? Также клиенту требуется только корневой сертификат сервера? или для этого нужны все три?
Спасибо