自己署名証明書を作成しようとしています。
- CA秘密鍵の生成:
openssl genrsa -out ca.key 2048
- CA証明書の生成(
ca.cnf
以下を参照):openssl req -x509 -new -key ca.key -out ca.crt -days 10000 -config ca.cnf
- サービス秘密鍵の生成:
openssl genrsa -out cert.key 2048
- CSRを生成します(
node.cnf
以下を参照):openssl req -new -key cert.key -out cert.csr -config node.cnf
- サーバー証明書の生成:
openssl x509 -req -in cert.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out cert.crt -days 100
それから私のSANがいっぱいになったことを確認したいと思います。
わかりました:
openssl x509 -noout -ext subjectAltName -in cert.crt
No extensions in certificate
どんなアイデアがありますか?
ca.cnf
ファイルは次のとおりです
# 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
:
# 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
答え1
その人のためにOpenSSL X509次のように教えてください。
-extfile ファイル名
使用する証明書拡張を含むファイル。指定しないと、拡張子は証明書に追加されません。
-extfile
このオプションを使用して、-extensions
opensslが正しい拡張子を指すようにすることができます。次のように使用するファイル-extfile node.cnf
と部分を教えてください-extensions extensions
。
$ openssl x509 -req -in cert.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out cert.crt -days 100 -extfile node.cnf -extensions extensions
これにより、次のようになります。
$ openssl x509 -noout -ext subjectAltName -in cert.crt
X509v3 Subject Alternative Name:
DNS:registry.localhost, DNS:host.k3d.internal