Certificate 如何使用keytool使用SAN创建CSR

Certificate 如何使用keytool使用SAN创建CSR,certificate,keytool,Certificate,Keytool,我想问一下,是否可以创建包含SAN记录的CSR 我创建keystore作为 keytool -genkeypair -keyalg RSA -keysize 2048 -alias testAlias -ext SAN=dns:test.example.com -keystore test.jks -storetype JKS -dname "CN=test" 我可以使用keytool检查SAN是否在密钥库中 keytool -list -v -keystore test.jks 输出的相关

我想问一下,是否可以创建包含SAN记录的CSR

我创建keystore作为

keytool -genkeypair -keyalg RSA -keysize 2048 -alias testAlias -ext SAN=dns:test.example.com -keystore test.jks -storetype JKS -dname "CN=test"
我可以使用keytool检查SAN是否在密钥库中

keytool -list -v -keystore test.jks
输出的相关部分是

#1: ObjectId: 2.5.29.17 Criticality=false
SubjectAlternativeName [
  DNSName: test.example.com
]
然后,我使用keytool创建了CSR:

keytool -certreq -file test.csr -keystore test.jks -alias testAlias
但在CSR中,缺少有关SAN的信息

如何检查:

keytool -printcertreq -file test.csr -v
正确地说,应该有类似于

Extension Request:

#1: ObjectId: 2.5.29.17 Criticality=false
SubjectAlternativeName [
  DNSName: test.example.com
]

我是否错过了
certreq
的一些选项?

当您生成CSR时,您需要再次指定-ext属性

keytool -certreq -file test.csr -keystore test.jks -alias testAlias -ext SAN=dns:test.example.com

使用多个DNS甚至IP也是可能的,例如:-ext“san=DNS:test.example.com,DNS:test.example.net,DNS:test2.example.com,IP:XX.XXX.XX.XXX”创建CSR文件对我来说很有效。。。只需获取我的证书以确保一切正常。另外,对CSR的响应也可以为您覆盖内容,以便CSR签名者可以将SAN放入其中,并管理证书的其他属性。