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 -extfile
e -extensions
funcionam