1

Base64 でエンコードされた証明書があります ----- BEGIN CERTIFICATE ----- MIIGezCCBWOgAwIBA ....、そこから証明書パスに表示されるルート証明書と中間証明書を取得する方法!

4

1 に答える 1

0

以前も同じ問題がありました。ご覧のとおり、証明書には発行者フィールドがあり、発行者のサブジェクトが含まれています。
それを比較したり、署名をテストしたりできます。証明書の署名を検証できるのは CA だけです。
このようなもの:

//load all the ca certificates and get their public keys
caCertificate.getIssuerDN().equals(caCertificate[i].getSubjectDN());
// OR/AND

try {
   verifySignature(certificate,
        caCertificate[i].getPublicKey());
    //issuer found
}
catch (Exception e) {
    // not the issuer
}

私はコードをテストしませんでしたが、アイデアはわかりました。

編集:

Java には、チェーンを検証するために特別に作成されたクラスがいくつかあります。そのうちの 1 つがCertPathBuilderクラスです。使い方はまだまだ研究中です。私はいつも間違ったパラメータでそれを作成すると思います...

編集2:

これにインスパイアされたものを使用しています。

幸運を

于 2012-02-17T20:52:00.363 に答える