Кажется, что OpenSSL повреждается при попытке считать назад subjectAltName/otherName/UTF8 значения, которые были записаны отдельно:
Соответствующая openssl.cnf конфигурация (использующий официальный, но случайный OID):
[alt_names]
DNS.1 = www.foo.com
DNS.2 = www.bar.org
IP.1 = 192.168.1.1
IP.2 = 192.168.69.144
email = email@me
otherName = 1.3.6.1.4.1.1;UTF8:some other identifier
Образец от дампа CSR генерировал от этой конфигурации:
TLS Web Server Authentication
X509v3 Subject Alternative Name:
DNS:www.foo.com, DNS:www.bar.org, IP Address:192.168.1.1, IP Address:192.168.69.144, email:email@me, othername:<unsupported>
Signature Algorithm: sha1WithRSAEncryption
6f:4a:1d:8f:43:7e:4d:d1:0c:7e:05:9d:1f:f0:98:b1:69:cf:
Кто-то может указать, делаю ли я что-то не так? Это сводит меня с ума.
Результат
был обычным результатом в 2010 году. Я предполагаю, что это все еще так.
Разработчик OpenSSL сказал это в списке рассылки ] (Заархивировано здесь .):
Стивен Хенсен, 02.01.2010:
В настоящее время OpenSSL не отображает никаких значений otherName. Он не может знать точное значение этого поля в целом, потому что формат может быть полностью произвольно. В лучшем случае это могло бы asn1parse содержимого.
А если вы используете openssl asn1parse
в файле, чтобы найти смещение раздела : X509v3 Subject Alternative Name
, а затем использовать ] -strparse
с этим смещением, тогда фактически будет отображаться otherName
.
К вашему сведению, вам нужно будет найти строку «OCTET STRING» чуть ниже строки «OBJECT :X509v3 Subject Alternative Name», а затем strparse
:
# print section offset via
openssl asn1parse -in yourcert.pem
# parse otherName from "OCTET STRING"
openssl asn1parse -in yourcert.pem -strparse <offset>