首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SSL: SAN未填充

SSL: SAN未填充
EN

Unix & Linux用户
提问于 2022-04-27 20:32:21
回答 1查看 310关注 0票数 1

我正在尝试创建我的自我签名证书:

  1. CA私钥创建:openssl genrsa -out ca.key 2048
  2. CA证书创建(见ca.cnf's内容如下):openssl req -x509 -new -key ca.key -out ca.crt -days 10000 -config ca.cnf
  3. 服务私钥创建:openssl genrsa -out cert.key 2048
  4. 创建企业社会责任(参见node.cnf bellow):openssl req -new -key cert.key -out cert.csr -config node.cnf
  5. 创建服务器证书:openssl x509 -req -in cert.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out cert.crt -days 100

在此之后,I0ve试图检查我的SAN是否已被填充:

我明白了:

代码语言:javascript
复制
openssl x509 -noout -ext subjectAltName -in cert.crt
No extensions in certificate

有什么想法吗?

ca.cnf文件是:

代码语言:javascript
复制
# OpenSSL CA configuration file
[ ca ]
default_ca = CA_default

[ CA_default ]
default_days = 365
database = index.txt
serial = serial.txt
default_md = sha256
copy_extensions = copy
unique_subject = no

# Used to create the CA certificate.
[ req ]
prompt=no
distinguished_name = distinguished_name
x509_extensions = extensions

[ distinguished_name ]
organizationName = jeusdi
commonName = cicdgitops

[ extensions ]
keyUsage = critical,digitalSignature,nonRepudiation,keyEncipherment,keyCertSign
basicConstraints = critical,CA:true,pathlen:1

# Common policy for nodes and users.
[ signing_policy ]
organizationName = supplied
commonName = optional

# Used to sign node certificates.
[ signing_node_req ]
keyUsage = critical,digitalSignature,keyEncipherment
extendedKeyUsage = serverAuth,clientAuth

# Used to sign client certificates.
[ signing_client_req ]
keyUsage = critical,digitalSignature,keyEncipherment
extendedKeyUsage = clientAuth

node.cnf

代码语言:javascript
复制
# OpenSSL node configuration file
[ req ]
prompt=no
distinguished_name = distinguished_name
req_extensions = extensions

[ distinguished_name ]
organizationName = jeusdi

[ extensions ]
subjectAltName = @alt_names

[alt_names]
DNS.1 = registry.localhost
DNS.2 = host.k3d.internal
EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2022-04-27 20:53:15

openssl x509的负责人说:

--extfile文件名文件包含要使用的证书扩展名。如果未指定,则不会向证书添加任何扩展。

您可以使用-extfile选项和-extensions将openssl指向正确的扩展。您需要告诉它要使用哪个文件,哪个部分是-extfile node.cnf,如下所示:

代码语言:javascript
复制
$ openssl x509 -req -in cert.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out cert.crt -days 100 -extfile node.cnf -extensions extensions

之后你会得到:

代码语言:javascript
复制
$ openssl x509 -noout -ext subjectAltName -in cert.crt
X509v3 Subject Alternative Name: 
    DNS:registry.localhost, DNS:host.k3d.internal
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/700647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档