Como criar um certificado SSL com múltiplas entradas DNS, assinado com meu próprio certificado CA

Como criar um certificado SSL com múltiplas entradas DNS, assinado com meu próprio certificado CA

Preciso de ajuda para criar um certificado SSL com vários subjectAltNames, assinado com meu próprio certificado CA fabricado por mim mesmo.

O que eu preciso:

Estou no OSX 10.10.5

Eu tenho myCA.cer que uso para assinar outro certificado SSL que possui os próximos nomes alternativos:

(não tenho certeza se IP pode ser um nome alternativo…)

  DNS.1 = foo.bearden.local
  DNS.2 = www.bearden.local
  DNS.3 = 192.168.1.58

Preciso importar este certificado para o meu iphone que já possui myCA.cer. É assim que vai ser verificado no sistema operacional do iphone.

O que eu faço:

Eu executo este script de shell:

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

Problema/pergunta:

1 - O curinga no CN não funciona (o Google Chrome ainda diz que não é confiável, embora eu tenha definido opções de confiança completas nas chaves)

2 - Quando adiciono o certificado ao chaveiro (myCA.cer já está lá), ele o reconhece como válido e confiável, mas o certificado em si (foo.crt) não possui nomes DNS alternativos que mencionei na configuração.

Por favor, ajude-me a obter meus vários nomes Alt DNS para este tipo de certificado

obrigado!

Responder1

Estas são as mudanças que eu deveria ter feito para que funcionasse (graças a Steffen Ullrich):

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

aqui está odocumentação do opensslexplicando como as opções -extfilee -extensionsfuncionam

informação relacionada