Мне нужна помощь в создании SSL-сертификата с несколькими SubjectAltNames, подписанного моим собственным сертификатом CA.
Что мне нужно:
У меня OSX 10.10.5
У меня есть myCA.cer, который я использую для подписи другого SSL-сертификата, имеющего следующие альтернативные имена:
(хотя не уверен, может ли IP быть альтернативным именем…)
DNS.1 = foo.bearden.local
DNS.2 = www.bearden.local
DNS.3 = 192.168.1.58
Мне нужно импортировать этот сертификат на мой iPhone, на котором уже есть myCA.cer. Вот как он будет проверен в ОС iPhone.
Что я делаю:
Я запускаю этот скрипт оболочки:
cat > ./cust.cnf <<-EOF
[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no
[req_distinguished_name]
CN = *.bearden.local/ CN=192.168.1.58
[v3_req]
keyUsage = keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = foo.bearden.local
DNS.2 = www.bearden.local
DNS.3 = 192.168.1.58
EOF
openssl genrsa -out foo.key 2048 -config ./cust.cnf && \
openssl req -new -out foo.csr -key foo.key -config ./cust.cnf && \
openssl x509 -req -sha256 -in foo.csr -extfile ./cust.cnf -out foo.crt -CAkey myCA.key -CA myCA.cer -days 365 -CAcreateserial -CAserial serial
Проблема/Вопрос:
1 -- Подстановочный знак в CN не работает (Google Chrome по-прежнему считает его недоверенным, хотя я установил полные параметры доверия в связке ключей)
2 — Когда я добавляю сертификат в связку ключей (myCA.cer уже там), он распознает его как действительный и доверенный, но сам сертификат (foo.crt) не имеет альтернативных имен DNS, которые я указал в конфигурации.
Пожалуйста, помогите мне получить несколько альтернативных DNS-имен для этого типа сертификата.
Спасибо!
решение1
Вот изменения, которые мне следовало внести, чтобы все заработало (спасибо Штеффену Ульриху):
openssl x509 -req -sha256 -in foo.csr -extfile ./cust.cnf -extensions v3_req -out foo.crt -CAkey myCA.key -CA myCA.cer -days 365 -CAcreateserial -CAserial serial
здесьдокументация opensslобъясняя, как работают опции -extfile
и-extensions