1

我正在使用java的數字證書,我正在閱讀使用標準getter方法的X.509證書的屬性。以下是我的代碼 -閱讀數字證書的友好名稱

X509Certificate c = (X509Certificate)cf.generateCertificate(fr); 
System.out.println("\tCertificate for: " +c.getSubjectDN()); 
System.out.println("\tCertificate issued by: " +c.getIssuerDN()); 
System.out.println("\tCertificate SN# " +c.getSerialNumber()); 

我也想讀取證書的友好名稱。不管getFriendlyName如何,都沒有getter。那麼如何讀取證書的友好名稱或不能以編程方式派生?

+0

你是什麼意思的「友好名稱」? [X.509](http://en.wikipedia.org/wiki/X.509)未定義「友好名稱」。也許你是指通用名稱(CN)可分辨名稱? – razlebe

+0

是的,我知道X.509沒有定義一個友好的名字。但在IE中打開證書時會在證書中定義一個友好名稱。單擊證書的詳細信息選項卡並單擊編輯屬性,您將看到友好名稱。想知道如何以編程方式閱讀? – user496934

+0

我正在使用Mac - 如何發佈屏幕抓取? – razlebe

回答

4

友好名稱未保存在證書中 - 它是Microsoft Windows證書存儲的一項功能。所以它不是跨平臺的,這意味着沒有標準的Java API。

+0

我在想這個。但是,您可以編輯證書的友好名稱並使其不同。在這種情況下,您的方法將無法工作。 – user496934

+2

比我不知道你在說什麼。每一個重要的信息都被簽名,所以你不能改變它。如果你發現了一些你可以改變的東西,但不應該使用它,這將是一個不好的做法。 – popfalushi

+0

比我不知道你在說什麼。 ---這就是我在說的。已經清楚地說明了這一點 - 「但在IE中打開證書時,會在證書中定義一個友好名稱。單擊證書的詳細信息選項卡,然後單擊編輯屬性,您將看到友好名稱。想知道如何閱讀「\ – user496934