Keytool:我可以使用证书请求配置文件在Keytool中定义CSR扩展名吗?(类似于openssl-config)
我使用nCipher HSM来存储我的密钥,我想生成一个自定义CSR,带有自定义扩展名(备用名称、证书策略和名称约束) 我在FIPS模式下运行HSM,这意味着私钥不能离开HSM,必须由HSM直接创建。因此,我无法使用openssl生成CSR。(使用openSSL引擎可能实现这一点,但这似乎需要大量的工作) 使用带有自定义安全提供程序的KeyTool,我能够连接到HSM以管理HSM中的密钥。例如:Keytool:我可以使用证书请求配置文件在Keytool中定义CSR扩展名吗?(类似于openssl-config),openssl,keytool,Openssl,Keytool,我使用nCipher HSM来存储我的密钥,我想生成一个自定义CSR,带有自定义扩展名(备用名称、证书策略和名称约束) 我在FIPS模式下运行HSM,这意味着私钥不能离开HSM,必须由HSM直接创建。因此,我无法使用openssl生成CSR。(使用openSSL引擎可能实现这一点,但这似乎需要大量的工作) 使用带有自定义安全提供程序的KeyTool,我能够连接到HSM以管理HSM中的密钥。例如: keytool -list -v -keystore new_key_store_name.jks
keytool -list -v -keystore new_key_store_name.jks -storepass <mypassword> -storetype ncipher.sworld -providername nCipherKM
所以我的问题是:有没有办法告诉keytool添加这些扩展?可能使用类似的配置文件?(方案A)
或者有没有办法让openSSL使用HSM安全提供程序?(方案B)
我已经成功地使用Java代码在我的CSR和HSM中操纵ASN1,但这是一个非常乏味的练习。(方案C)
提前感谢各位。似乎您可以使用
-ext
来完成这项工作。因此,请将以下内容添加到命令行:
-ext KeyUsage:critical="digitalSignature, keyEncipherment" \
-ext BasicConstraints:critical="ca:False" \
etc..
谢谢你,我最终用java手工完成了这一切。如果我再调查一遍,我会给你回电的。
[...]
####################################################################
[ server_req_extensions ]
subjectKeyIdentifier = hash
basicConstraints = CA:FALSE
extendedKeyUsage = serverAuth,clientAuth
keyUsage = digitalSignature, keyEncipherment
subjectAltName = @alternate_names
nsComment = "OpenSSL Generated Certificate"
certificatePolicies = 2.23.146.1.2.1.2
nameConstraints = permitted;IP:192.168.0.0/255.255.0.0
nameConstraints = permitted;email:max.somedomain.com
####################################################################
[ alternate_names ]
otherName=1.1.2.1;UTF8:"random-name"
-ext KeyUsage:critical="digitalSignature, keyEncipherment" \
-ext BasicConstraints:critical="ca:False" \
etc..