#!/intro
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 []:user@mail.org
Tambem é possivel 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"
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
[ dn ]
C = PT
ST = Portugal
L = Lisboa
O = Exemplo
OU = TI
CN = exemplo.com
emailAddress = user@mail.org
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
> conclusão
A geração de um CSR 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 automatizar este processo, 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.
> status: signed
> exit 0