複数の URL (RFC 5280 に従って同じ CRL を指す) を含む CRL 配布ポイントを持つ証明書を作成したいと思います。
OpenSSL がこのような証明書を解析すると、次のような内容が表示されます。
X509v3 CRL Distribution Points:
Full Name:
URI:http://addr1
URI:http://addr2
...
できれば openssl を使用して、このような証明書を自分で作成するにはどうすればよいでしょうか?
答え1
GeneralNames の SEQUENCE を定義するには、次の完全な形式を使用して OpenSSL 構成で crlDistributionPoints を定義する必要があります。
crlDistributionPoints = cdp1
...
[cdp1]
fullname = URI:http://example.com/myca.crl,URI:http://example.org/my.crl
次のように表示されます:
X509v3 CRL Distribution Points:
Full Name:
URI:http://example.com/myca.crl
URI:http://example.org/my.crl
完全な例は、設定ファイルを作成することから始まります (例example.cnf
):
[req]
prompt = no
distinguished_name = dn
[dn]
countryName = gb
organizationName = Example
commonName = Example Web Server
[ext]
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer
keyUsage = critical, digitalSignature, keyAgreement
extendedKeyUsage = serverAuth
crlDistributionPoints = cdp1
subjectAltName = @alt_names
[cdp1]
fullname = URI:http://example.com/myca.crl, URI:http://example.org/my.crl
[alt_names]
DNS.1 = www.example.com
DNS.2 = www.example.org
構成を使用して証明書署名要求 (CSR) を生成します。
openssl req -newkey rsa:2048 -keyout example.key -nodes -config example.cnf -out example.csr
上記では、パスワード保護のない 2048 ビットの RSA キーが作成されることに注意してください。-nodes
秘密キーをパスワードで保護する必要がある場合は、を削除してください。
上記で生成された CSR に CA が署名します。