Estou tentando gerar um certificado autoassinado com OpenSSL com SubjectAltName nele. Enquanto estou gerando o csr para o certificado, meu palpite é que tenho que usar extensões v3 do OpenSSL x509. Estou usando :
openssl req -new -x509 -v3 -key private.key -out certificate.pem -days 730
Alguém pode me ajudar com a sintaxe exata?
ssl
openssl
ssl-certificate
x509certificate
x509
Mohanjot
fonte
fonte
Respostas:
É um processo de três etapas e envolve a modificação do
openssl.cnf
arquivo. Você pode fazer isso apenas com opções de linha de comando, mas eu não faço dessa forma.Encontre seu
openssl.cnf
arquivo. Provavelmente está localizado em/usr/lib/ssl/openssl.cnf
:No meu sistema Debian ,
/usr/lib/ssl/openssl.cnf
é usado pelo programa embutidoopenssl
. Em sistemas Debian recentes, ele está localizado em/etc/ssl/openssl.cnf
Você pode determinar qual
openssl.cnf
está sendo usado adicionando um falsoXXX
ao arquivo e ver seopenssl
engasga.Primeiro, modifique os
req
parâmetros. Adicione umaalternate_names
seçãoopenssl.cnf
com os nomes que deseja usar. Não háalternate_names
seções existentes , portanto, não importa onde você as adiciona.Em seguida, adicione o seguinte à seção existente
[ v3_ca ]
. Pesquise a string exata[ v3_ca ]
:Você pode mudar
keyUsage
para o seguinte em[ v3_ca ]
:digitalSignature
ekeyEncipherment
são tarifa padrão para um certificado de servidor. Não se preocupenonRepudiation
. É uma parte inútil pensada por rapazes / moças da ciência da computação que queriam ser advogados. Isso não significa nada no mundo jurídico.No final, o IETF ( RFC 5280 ), os navegadores e as CAs são executados de forma rápida e solta, então provavelmente não importa qual uso de chave você fornece.
Em segundo lugar, modifique os parâmetros de assinatura. Encontre esta linha na
CA_default
seção:E mude para:
Isso garante que os SANs sejam copiados para o certificado. As outras maneiras de copiar os nomes DNS estão quebradas.
Terceiro, gere seu certificado autoassinado:
Finalmente, examine o certificado:
fonte
openssl genrsa -out cert.key 3072 -nodes
openssl req -new -x509 -key cert.key -sha256 -config openssl.cnf -out cert.crt -days 730 -subj "/C=US/ST=private/L=province/O=city/CN=hostname.example.com"
subjectAltName=$ENV::ALTNAME
(e definir o env. VarALTNAME=DNS:example.com,DNS:other.example.net
).IP
vez deDNS
paraalternate_names
se estiver trabalhando com um endereço IP. Você também pode copiar o arquivo de configuração localmente e especificá-lo na linha de comando do openssl com-config my_config.cnf
. E você pode ter que descomentarreq_extensions = v3_req
.