Como criar um certificado SSL com várias entradas de DNS, assinado com meu próprio certificado de CA

0

Preciso de ajuda para criar um certificado SSL com vários subjectAltNames, assinados com o meu certificado de CA selfbrewed.

O que eu preciso:

Estou no OSX 10.10.5

Eu tenho o myCA.cer que eu uso para assinar outro certificado SSL que tem próximos nomes alternativos:

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

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

Eu preciso importar este certificado para o meu iphone, que já tem o myCA.cer. É assim que será verificado no SO do iphone.

O que eu faço:

Eu corro 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, mesmo que eu tenha definido opções de confiança completas no keychain)

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

Por favor, ajude-me a obter meus múltiplos nomes Alt DNS para esse tipo de certificado

obrigado!

    
por Drew 09.12.2015 / 21:09

1 resposta

1

Estas são as mudanças que eu deveria ter feito para que funcionasse (Obrigado 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

veja aqui a documentação do openssl explicando como as opções -extfile e -extensions funcionam

    
por 10.12.2015 / 06:04