Como adicionar vários endereços de e-mail a um certificado SSL por meio da linha de comando?

6

Sei que adicionando / modificando a entrada SubjectAltName em openssl.cnf , isso pode ser alcançado , mas existe uma maneira de fazer isso sem ter que modificar esse arquivo toda vez?

    
por Tobias Kienzler 31.01.2013 / 10:15

2 respostas

5

Você não precisa mexer no arquivo openssl.cnf de nenhuma maneira.

O comando a seguir demonstra como gerar um certificado autoassinado com a SAN para o email [email protected] :

openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes \
  -keyout example.key -out example.crt -subj '/CN=Nobody' \
  -extensions san \
  -config <(echo '[req]'; echo 'distinguished_name=req';
            echo '[san]'; echo 'subjectAltName=email:[email protected]')

O truque aqui é incluir uma seção [req] mínima suficiente para que o OpenSSL se dê bem sem o arquivo openssl.cnf principal.

No OpenSSL ≥ 1.1.1, isso pode ser reduzido para:

openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes \
  -keyout example.key -out example.crt -subj '/CN=Nobody' \
  -addext 'subjectAltName=email:[email protected]'

Aqui estamos usando a nova opção -addext , portanto, não precisamos mais de -extensions e -config .

Não se esqueça de verificar o conteúdo do certificado gerado:

openssl x509 -noout -text -in example.crt

Veja também: link e link

    
por 28.12.2016 / 18:48
1

Em openssl.cnf na parte superior, adicione a entrada SAN = "email:copy" (para ter um valor padrão, caso a variável de ambiente SAN não esteja definida) e, na respectiva seção, use SubjectAltName = ${ENV::SAN} . Agora basta chamar SAN="email:copy, email:adress@two" openssl ... , onde email:copy garante que o endereço principal também seja usado. (Adaptado de aqui )

    
por 31.01.2013 / 12:17