Как создать SSL-сертификат с несколькими записями DNS, подписанный моим собственным сертификатом CA

Как создать SSL-сертификат с несколькими записями DNS, подписанный моим собственным сертификатом CA

Мне нужна помощь в создании 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

Связанный контент