jim*_*mmy 18 ssl openssl ssl-certificate
我已经生成了一个包含字段主题alt名称的CSR:
openssl req -out mycsr.pem -new -key mykey.pem -days 365
Run Code Online (Sandbox Code Playgroud)
当我检查它时,它看起来像预期的新字段存在:
X509v3 Subject Alternative Name:
DNS: my.alt.dns
Run Code Online (Sandbox Code Playgroud)
但是,当我使用它来签署证书时,由于某种原因省略了该字段.
我使用以下命令生成它:
openssl ca -out mycert.pem -infiles mycsr.pem
Run Code Online (Sandbox Code Playgroud)
我的CA证书是否必须包含相同的Alt名称才能包括在内?
Han*_* Z. 15
您可以使用:
copy_extensions = copy
Run Code Online (Sandbox Code Playgroud)
在你的CA_default
部分openssl.cnf
.
但只有当您确信可以信任CSR中的扩展时,如本主题所述:http://openssl.6102.n7.nabble.com/subjectAltName-removed-from-CSR-when-signing-td26928 html的
另请参阅:如何使用OpenSSL生成具有SubjectAltName的自签名证书?
jon*_*ckt 14
对于每个人,谁doesn't编辑的全系统openssl.conf
,用于将SAN中的原生看到一只OpenSSL的CLI选项.crt
从.csr
。您只需要使用openssl -extfile
和-extensions
CLI参数即可。
这是一个例子:
openssl x509 -req -days 3650 -in alice.csr -signkey aliceprivate.key -out alice.crt -extfile alice-csr.conf -extensions v3_req
Run Code Online (Sandbox Code Playgroud)
这需要alice-csr.conf文件,该文件如下所示(填写您的适当数据),并用于.csr
通过命令生成openssl req -new -key aliceprivate.key -out alice.csr -config alice-csr.conf
:
[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req
prompt = no
[req_distinguished_name]
C = DE
ST = Thuringia
L = Erfurt
O = Alice Corp
OU = Team Foo
CN = server-alice
[v3_req]
keyUsage = keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = server-alice
DNS.2 = localhost
Run Code Online (Sandbox Code Playgroud)
请记住,该-extensions v3_req
选项与[v3_req]
文件中的部分相对应alice-csr.conf
,您可以在其中定义您要向其颁发证书的主题备用名(也称为域)。
我总是欣赏完全可理解的示例(其中每个步骤都可以重现每个步骤),因此我创建了一个具有Spring Boot微服务的示例项目:https : //github.com/jonashackt/spring-boot-rest-clientcertificates-docker-compose
在这里很好地描述了使用替代名称签署 CSR:https : //www.feistyduck.com/library/openssl-cookbook/online/ch-openssl.html#creating-certificates-valid-for-multiple-hostnames
简而言之,您创建了一个something.ext
仅包含替代名称的文件:
subjectAltName = DNS:*.my.alt.dns, DNS:my.alt.dns
Run Code Online (Sandbox Code Playgroud)
然后在openssl x509 -req ...
命令中引用此文件:-extfile something.ext
. 请注意,它在签署 CSR 时发生,而不是在准备时发生。
归档时间: |
|
查看次数: |
17965 次 |
最近记录: |