É possível fornecer um SubjectAltName-Extension ao módulo OpenSSL req
directamente na linha de comando?
Eu sei que's é possível através de um ficheiro openssl.cnf, mas isso's não é realmente elegante para a criação de RSCs em lote.
A minha solução foi passar o subjectAltName
através de uma variável de ambiente.
Em primeiro lugar, acrescentem isto ao openssl.conf
:
[ san_env ]
subjectAltName=${ENV::SAN}
Em seguida, definir a variável ambiente antes de invocar openssl:
export SAN=DNS:value1,DNS:value2
openssl req -extensions san_env -subj '/CN=value1' ...
Nota: o parâmetro extensões san_env
precisa de estar presente ao assinar o CSR, bem como ao gerá-lo. Portanto, para CSRs assinados por CA, adicionar -extensões san_env
ao comando openssl ca
também.
O segundo post neste link diz que não é possível fazê-lo apenas a partir da linha de comando, mas o 4º post no mesmo link fornece uma alternativa usando a capacidade da bash's de referenciar dados como se estivesse num ficheiro.
Analisando melhor, alguém mencionou o parâmetro reqexts utilizado para fazer aditamentos ao pedido de certificado. Este blogue usa bash's env como abordagem a esta questão.
Mas i'estou apenas a tentar ajudar. Haven't testei nada disto eu próprio.