2012-01-04 95 views
2

當我查看java.security.cert中的X509certificate類時,它有一個方法,如getExtendedKeyUsage()getKeyUsage()。有沒有使用keytool設置這些值的方法?如何使用keytool設置Usage屬性

+0

您是否正在嘗試更改當前證書的任何內容(我假設)還是布魯諾正確猜測您還可以將其用於新證書? – 2012-01-04 21:55:21

回答

4

有一個新的-ext選項keytool in Java 7檢查表中的-ext文檔下,特別是KUEKU選項。

注意,你通常可以使用/生成一個密鑰存儲在Java 7的keytool與其他版本的JRE處理(包括Java 6)。

當然,這個將僅適用於您生成的證書請求(在這種情況下,您使用的CA可能會選擇忽略或更改您的CSR的某些內容)或證書(即您發出的證書)。你在哪裏是CA)。您將無法更改現有證書。

0

如果有,我從來沒有見過它,我只是用JDK進行檢查(儘管極不可能)。請注意,密鑰用法應該是一個簽名屬性(以及關鍵擴展名),所以更改通常不會起作用,因爲它會破壞頒發CA的簽名。它可以改變爲一個特定的應用程序(和屬性單獨存儲,但這不是一個Java密鑰存儲區內的功能,它不會因爲它會與X509標準不兼容)

+1

「簽名屬性(關鍵擴展名)」。簽名屬性和關鍵擴展不是一回事。所有屬性(以及X.509證書的全部內容)均由頒發CA簽署。擴展是否至關重要是不同的:這是CA向消費者告知證書的一種方式,即它必須理解這個特定的擴展。 – Bruno 2012-01-04 19:34:33

+0

@布魯諾你當然是對的,改成&時,在發佈時有點睏倦 - 我還假設作者正在嘗試更改現有證書,我會問他 – 2012-01-04 21:54:32

0

該選項似乎是keytool -ext EKU = codeSigning 但我還沒有親自嘗試過它。

相關問題