CA подписал сертификат X509 дважды содержит расширение X509v3 "Альтернативное имя субъекта"
Если я использую OpenSSL для создания сертификата X509, который подписывается сертификатом CA и включает в себя расширение SAN (Subject Alternative Name) X509v3, сгенерированный сертификат содержит расширение SAN дважды, тогда как если сертификат самоподписан, расширение SAN отображается только один раз (что я считаю правильным).
Действия по воспроизведению:
$ openssl version
OpenSSL 1.0.2n 7 Dec 2017
$ openssl genrsa -out example.key 2048
$ openssl req -new -key example.key -out example.csr
# ... confirm certificate defaults only enter "example.com" as Common Name
$ echo subjectAltName=DNS:example.com,DNS:www.example.com > example.cnf
$ openssl x509 -req -sha256 -days 7300 -text -extfile example.cnf \
-in example.csr -signkey example.key \
-CA ../ca.crt -CAkey ../ca.key -set_serial 01 \
-out example.crt
После этого, если я проверю сертификат, раздел "Альтернативное имя субъекта X509v3" будет напечатан дважды:
$ openssl x509 -in example.crt -text -noout
...
X509v3 extensions:
X509v3 Subject Alternative Name:
DNS:example.com, DNS:www.example.com
X509v3 Subject Alternative Name:
DNS:example.com, DNS:www.example.com
...
Это не тот случай, если CA не используется, и сертификат получает самозаверяющий подпись через:
$ openssl x509 -req -sha256 -days 7300 -text -extfile example.cnf \
-in example.csr -signkey example.key \
-out example.crt
Я могу проверить это поведение с OpenSSL 1.0.2n
так же как OpenSSL 0.9.8zh
,
Это ошибка OpenSSL или есть веское объяснение этому?
1 ответ
Смотрите ответ @dave_thompson_085:
Используя оба -signkey
а также -CAkey
не имеет никакого смысла и вызывает этот странный побочный эффект.