1 回答

TA貢獻(xiàn)1812條經(jīng)驗 獲得超5個贊
您正在尋找證書鏈,這是 PKI(公鑰基礎(chǔ)設(shè)施)中常見的東西。一個證書可以對另一個證書進行簽名,以表明該證書是可信的。
在簡單的示例中,將有一個自簽名且受信任的根證書 - 每個人都信任該證書。接下來,您可以要求該證書的所有者使用 Root 的證書私鑰對您的證書進行簽名。因此,如果有人想使用您的證書,他可以檢查您的證書是否由根證書簽名,并且如果他信任根證書 - 他也可以信任您。
在 Java 中,您可以使用如下命令檢查證書是否由相應(yīng)證書的私鑰簽名:
X509Certificate yourCert = ...
X509Certificate root = ...
try {
? ? yourCert.verify(root.getPublicKey()); }?
catch (CertificateException | NoSuchAlgorithmException | InvalidKeyException | NoSuchProviderException e) {
? ? //handle wrong algos
} catch (SignatureException ex) {
? ? //signature validation error
}
其Certificate::verify
目的是:
驗證此證書是否是使用與指定公鑰對應(yīng)的私鑰簽署的。
由于X509Certificate擴展,Certificate您可以在實現(xiàn)上使用此方法X509Certificate(因為X509Certificate是一個abstract類)。
您還可以查看X509Certificate::verify(PublicKey, Provider)
哪些需要PublicKey
和Provider
實施。
添加回答
舉報