2011-12-31 32 views
1

X.509 openssl証明書パーサーのJava実装を記述する必要がありますが、問題があります。証明書の検証のためにsha1を取得する方法がわかりません。 誰かが私が何をすべきかを理解する助けができますか?私は方法があることを知っているgetTBSCertificate() Javaで、私は私の目的のためにそれを書き直す必要があります。X.509からsha1を抽出Javaの証明書を開く

+1

ここをクリックしてください:http://stackoverflow.com/questions/143523/x509-certificate-parsing-libraries-for-java –

答えて

5

ブラウザとOSツールで一般的に「指紋」として表示されるsha1を意味すると仮定します.1)生の証明書がDERとして必要です。 2)sha1 itと3)通常の2桁の16進数/コロンで区切られた文字列に変換します。

1については、 java.security.cert.CertificateのgetEncoded()はそれを取得します。

2について:MessageDigestにはその機能があります。 3に関しては

:私はあなたにそれを残しておきます:)

... someFoo(X509Certificate cert) { 
    MessageDigest sha1 = MessageDigest.getInstance("SHA1"); 
    System.out.println(" Subject " + cert.getSubjectDN()); 
    System.out.println(" Issuer " + cert.getIssuerDN()); 
    sha1.update(cert.getEncoded()); 
    System.out.println(" sha1 " + toHexString(sha1.digest())); 
    System.out.println(); 
    } 

は、トリックを行う必要があります。この出力は、java keytoolの出力と一致します。

Dw。

+0

これは確かに指紋に適しています。私の推測では、その質問は署名を検証することにもなるかもしれないということです...最近のいくつかの関連する質問があります:[指紋について](http://security.stackexchange.com/q/14330/2435)と[署名について(およびCA)](http://stackoverflow.com/q/10411433/372643)を参照してください。 – Bruno

関連する問題