java でサブジェクトの詳細を証明書 (DER 形式、つまり .cer ファイル) に表示するにはどうすればよいですか? 例: 電子メール、国、名前または別の OID など。
証明書の読み取りは、上記のコードから実行できます。Androidでも動作します。GreyBeardedGeek さん、ありがとうございます。しかし、さらに詳しく説明すると (ご要望に応じて)、メソッド getSubjectDN() または cert.getSubjectX500Principal().getname() を使用してサブジェクトの詳細を表示すると、詳細全体が表示されます。暗号化されている場合もあります。私はそれをASN1と信じています(よくわかりません)。必要なのは、必要な情報だけを抽出することです。例として、私が作成したサンプル証明書のコードの出力を参照してください。using method - cert.getSubjectX500Principal().getname() Subject Name 2.5.4.5=#130d4e2d61626c652f49542f303130,2.5.4.72=#1308456e67696e656572,2.5.4.41=#13104e7577616e20446520416c6d65696461,1.2.840.113549.1.9.1=#16106e7577616e406e2d61626c652e62697a,OU=Information Technology ,O=N-able Pvt Ltd\ ,ST=ウエスタン,C=LK
2.5.4.5 はエンコードされた OID (Object Identifier) です。
メソッドの使用 - getSubjectDN()
OID.2.5.4.5=N-able/IT/010、OID.2.5.4.72=エンジニア、OID.2.5.4.41=ヌワン デ アルメイダ、OID.1.2.840.113549.1.9.1=#16106E7577616E406E2D61626C652E62697A、OU=情報技術O="N-able Pvt Ltd "、ST=ウェスタン、C=LK
ここでも一部の情報がエンコードされます。たとえば、電子メール アドレスです。
私の質問に戻ると、OID に基づいて (エンコードされていない) 情報を個別に抽出するにはどうすればよいでしょうか。さらに、証明書を Windows OS にインストールすると、サブジェクト情報を正しく表示できます。Java で OID を渡す OID 値情報を取得し、サブジェクトの詳細を個別に抽出するコードが必要です。
よろしくお願いします。