我們得到了來自我們客戶的.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,所以我們最終最多插入三個條目到信任,不知道這是將證書鏈的權利..
是否有插入一個別名下的證書鏈的方法嗎?
客戶端如何找到匹配的服務器信任?它使用別名?客戶端是否也只需要服務器根證書?或者它需要所有三個?
感謝