Я хотел бы создать сертификат с точкой распространения CRL, которая содержит несколько URL (ссылающихся на один и тот же CRL, согласно RFC 5280):
Когда OpenSSL разбирает такой сертификат, он показывает что-то вроде этого:
X509v3 CRL Distribution Points:
Full Name:
URI:http://addr1
URI:http://addr2
...
Как создать такой сертификат самостоятельно, предпочтительно используя openssl?
Чтобы определить ПОСЛЕДОВАТЕЛЬНОСТЬ общих имен, вам необходимо определить crlDistributionPoints в вашей конфигурации OpenSSL, используя полный формат:
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 без защиты паролем. Удалите -узлы
, если вам нужно защитить закрытый ключ паролем.
Попросите CA подписать CSR, созданный выше.