如何在请求中创建没有任何属性/请求扩展的CSR - Keytool

问题描述 投票:0回答:1

是否有可能使用java keyTool生成证书签名请求,该签名请求不包含任何属性,如“请求的扩展”或任何相关的扩展嵌入信息?

我是新手使用keytool并且正在与希望我们生成没有属性信息的CSR的客户打交道。

一些背景信息是我的私钥在我的密钥库中过期,这导致我生成一个新的密钥库,其中包含之前相同的“PrivateKeyEntry”别名(当然这是一个示例,我已经更改了密钥库名称和别名“PrivateKeyEntry”):

keytool -keystore example-prod-client-ssl.jks -genkey -alias example-prod-client-ssl -storetype JKS -keysize 2048 -keyalg RSA -sigalg SHA1WithRSA

生成新的密钥库后,我还需要删除一些过期的“trustedCertEntry”别名,因此我从旧的密钥库中导出了所有有效的“trustedCertEntry”证书,并将它们导入到新的密钥库中。

现在,此时我需要生成CSR并拥有客户签名,因为当您生成新的密钥库和“PrivateKeyEntry”时,它是自签名的。

我可以使用以下命令轻松生成CSR:

keytool -certreq -alias example-prod-client-ssl -file certreq_v2-02112019.csr -keystore example-prod-client-ssl.jks

但是,当我使用在线工具解析CSR时,我可以看到它在请求中包含一些属性信息,即“请求的扩展”:enter image description here

所以我的主要问题是,我怎样才能使属性部分为空?

过去,我在2014年看到我们必须与客户执行相同的流程,当我在旧密钥库上执行CSR(作为测试)时,我仍然拥有与我的新CSR请求完全相同的属性。但客户并不希望这些包含在内,因为它会导致错误。

另外,要添加到此,为旧密钥库发送给客户的最后一个CSR请求(不是由我执行 - 在2014年完成但是我有此CSR文件的副本)不包含此属性信息并且只是具有十六进制值“a0:00”:enter image description here

因此,我认为它与我的CSR请求隔离,而不是新的密钥库创建本身,因为当我在旧密钥库上生成CSR(仍然可用)时,它还包含这些Atttribute请求的扩展。

我玩弄了“-ext”到我的“-certreq”命令试图压缩或插入一个空的属性部分(因为我相信如果我不使用“-ext”参数,“-certreq”命令将默认这就是为什么我遇到了我当前的问题),但我没有成功。

certificate x509certificate keytool csr
1个回答
0
投票

如果您使用Java JDK 1.6或更低版本,则可以解决此问题。我当前的VM正在运行JDK 10.0.2,因此它会自动填充CSR中的Attribute Requested Extension X509V3 SubjectKeyIdentifier。我刚刚将密钥库文件复制到我使用JDK 1.6的旧VM上,CSR正在生成我想要的方式而没有任何问题。

© www.soinside.com 2019 - 2024. All rights reserved.