Кажется, что 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:
Может кто подскажет, делаю ли я что-то не так? Это сводит меня с ума.
Репутации недостаточно, чтобы проголосовать за @StackzOfZtuff ..
К вашему сведению, вам нужно будет найти строку «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>
В <unsupported>
Результат был обычным в 2010 году. Я предполагаю: это все еще так.
Разработчик OpenSSL сказал это на список рассылки (Архивировано Вот.):
Стивен Хенсен, 02.01.2010:
В настоящее время OpenSSL не отображает никаких значений otherName. Он не может знать точное значение этого поля в целом, потому что формат может быть совершенно произвольным. В лучшем случае он мог анализировать содержимое.
И если вы используете openssl asn1parse
в файле, чтобы найти смещение :X509v3 Subject Alternative Name
раздел, а затем используйте -strparse
вариант с этим смещением, затем otherName
фактически будет отображаться.