2012-01-04 93 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 但我还没有亲自尝试过它。

相关问题