2024-07-01 00:00
Gerar um Certificate Signing Request (CSR) em conformidade com o formato PKCS#10 é um passo essencial para solicitar um certificado digital assinado por uma Autoridade Certificadora (CA). Este pedido contém a chave pública e os dados de identificação da entidade requerente, sendo assinado com a respetiva chave privada.
> gerar_csr
Para gerar um CSR com base numa chave privada existente, pode utilizar o seguinte comando OpenSSL:
openssl req -new -key chave_privada.key -out pedido.csr
O OpenSSL irá pedir-lhe que introduza manualmente os campos da identificação:
Country Name (2 letter code) []:PT
State or Province Name (full name) []:Portugal
Locality Name (eg, city) []:Lisboa
Organization Name (eg, company) []:Exemplo
Organizational Unit Name (eg, section) []:TI
Common Name (e.g. server FQDN or YOUR name) []:exemplo.com
Email Address []:[email protected]
Também é possível gerar o CSR sem qualquer interação manual, com todos os campos definidos diretamente na linha de comando.
openssl req -new -key chave_privada.key -out pedido.csr \
-subj "/C=PT/L=Lisboa/O=Exemplo/OU=TI/CN=exemplo.com"
Em certificados TLS modernos, os nomes DNS devem ser indicados através da extensão Subject Alternative Name (SAN). O campo Common Name (CN) pode continuar a existir na identificação do sujeito do pedido, mas não deve ser tratado como identificador suficiente do serviço.
Finalmente, é possível gerar o CSR utilizando um ficheiro de configuração, o que permite definir todos os campos de identificação de forma estruturada e sem intervenção manual.
Ficheiro de configuração req.conf:
[ req ]
prompt = no
distinguished_name = dn
req_extensions = v3_req
[ dn ]
C = PT
ST = Portugal
L = Lisboa
O = Exemplo
OU = TI
CN = exemplo.com
emailAddress = [email protected]
[ v3_req ]
subjectAltName = @alt_names
[ alt_names ]
DNS.1 = exemplo.com
DNS.2 = www.exemplo.com
Com este ficheiro, o CSR pode ser gerado com o seguinte comando:
openssl req -new -key chave_privada.key \
-out pedido.csr \
-config req.conf
Neste exemplo, o CSR inclui a extensão SAN com os nomes exemplo.com e www.exemplo.com, permitindo à Autoridade Certificadora emitir um certificado adequado para utilização em serviços TLS.
> conclusão
A geração de um pedido de assinatura de certificado com o OpenSSL constitui um passo fundamental na obtenção de certificados X.509 emitidos por uma Autoridade Certificadora. Este processo assegura que a chave privada nunca é exposta, uma vez que apenas a chave pública e os atributos do sujeito são incluídos no pedido.
A possibilidade de automatização, seja através da linha de comando ou de ficheiros de configuração, permite uma integração mais eficiente em ambientes de gestão de certificados, reduzindo erros e aumentando a consistência dos pedidos.
Em certificados TLS, a inclusão correta da extensão SAN é particularmente importante, uma vez que os nomes DNS associados ao serviço devem constar nessa extensão e não depender apenas do campo Common Name.
> status: signed> exit 0