1. Gerar um CSR (Certificate Signing Request)
O pedido de um certificado do tipo EV ou OV implica sempre que tenha sido criado previamente os ficheiros KEY e CSR.
Exemplo de CSR:
-----BEGIN CERTIFICATE REQUEST-----
MIIBnTCCAQYCAQAwXTELMAkGA1UEBhMCU0cxETAPBgNVBAoTCE0yQ3J5cHRvMRIw
EAYDVQQDEwlsb2NhbGhvc3QxJzAlBgkqhkiG9w0BCQEWGGFkbWluQHNlcnZlci5l
eGFtcGxlLmRvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAr1nYY1Qrll1r
uB/FqlCRrr5nvupdIN+3wF7q915tvEQoc74bnu6b8IbbGRMhzdzmvQ4SzFfVEAuM
MuTHeybPq5th7YDrTNizKKxOBnqE2KYuX9X22A1Kh49soJJFg6kPb9MUgiZBiMlv
tb7K3CHfgw5WagWnLl8Lb+ccvKZZl+8CAwEAAaAAMA0GCSqGSIb3DQEBBAUAA4GB
AHpoRp5YS55CZpy+wdigQEwjL/wSluvo+WjtpvP0YoBMJu4VMKeZi405R7o8oEwi
PdlrrliKNknFmHKIaCKTLRcU59ScA6ADEIWUzqmUzP5Cs6jrSRo3NKfg1bd09D1K
9rsQkRc9Urv9mRBIsredGnYECNeRaK5R1yzpOowninXC
-----END CERTIFICATE REQUEST-----
Campos a preencher no CSR (Opcionais/Obrigatórios):
- C (country) - Obrigatório : PT
- L (locality) - Obrigatório : Localidade
- ST (state or province) - Obrigatório : Distrito
- O (organization) - Obrigatório : Nome da organização de acordo com o protocolo
- OU (organizational unit) - Facultativo : Departamento
- CN (common name) - Obrigatório : Deve corresponder ao FQDN ou lista de Domain Names
- STREET (street address) - Facultativo : Morada
- E (E-mail address) - Facultativo : Email Genérico (departamento@instituição)
Nota: Os campos opcionais quando preenchidos devem corresponder à informação presente na plataforma da Sectigo.
1.1 CSR Linux Multi-domínio
A criação de certificados em Linux pressupõe que esteja instalada uma versão recente do software openssl.
1.1.1 Criar e/ou editar o ficheiro Openssl.conf
Devem criar ou editar, caso já exista, o ficheiro openssl.conf. Tipicamente este ficheiro está localizado na pasta /etc/ssl/.
vi /etc/ssl/openssl.cnf
1.1.2 Adicionar os campos
Devem adicionar os seguintes campos ao ficheiro openssl.conf.
Os campos referentes ao DN devem ser alterados a ajustados para a instituição que está a requerer o certificado.
De notar que os múltiplos domínios a serem usados devem ser definidos usando o campo subjectAltName. Deve sempre existir pelo menos um campo CN, onde é definido o domínio principal associado ao certificado, e os restantes devem seguir uma lógica numérica: DNS.1, DNS.2, DNS.3, etc.
[ req ]
default_bits = 2048
prompt = no
encrypt_key = no
default_md = sha256
distinguished_name = dn
reqextensions = v3req
[ dn ]
C = pais
ST = rua
L = localidade
O = nomedaorganizacao
OU = nomeunidadeorganica
CN = a.teste.fccn.pt
emailAddress = endereco@inst.pt
[ v3_req ]
# Extensions to add to a certificate request
subjectAltName = @alt_names
[alt_names]
DNS.1 = b.teste.fccn.pt
DNS.2 = c.teste.fccn.pt
DNS.3 = d.teste.fccn.pt
1.1.3 Gerar o CSR
1.1.3.1 Gerar a Chave Privada
openssl genrsa -des3 -out myserverkey.key 4096
1.1.3.2 Gerar o CSR com base na Chave Privada
openssl req -new -out server.csr -key myserverkey.key -config/etc/ssl/openssl.cnf
1.1.3.3 Validar o CSR e os vários domínios
openssl req -text -noout -in server.csr
1.2 CSR Windows Multi-domínio
Criar o ficheiro request.inf com os parâmetros necessários ao novo certificado. Devem alterar os valores dos seguintes campos:
- O= Colocar o nome da Entidade, conforme consta do serviço TCS
- CN= Colocar o FQDN da máquina
- SAN= Colocar os restantes nomes a serem usados no certificado. Este campo é também definido pelo OID2.5.29.17 e deve aí contar os domínios adicionais.
- OID= Colocar o OID referente ao propósito para o qual o certificado é gerado. Pode ser consultada aqui uma lista completa dos OID's e respetivos propósitos
1.2.1 Server 2008 ou posterior
Para o Windows Server 2008, Windows Server 2008 R2, Windows Vista ou Windows 7 deve ser usado o modelo abaixo para o ficheiro request.inf
;----------------- request.inf -----------------
[Version]`
Signature="$Windows NT$"`
[NewRequest]`
Subject ="CN=a.teste.fccn.pt, OU=RCTSAAI, O=Fundacao para a Computacao Cientifica Nacional, L=Lisboa, S=Lisboa, C=PT"; replace attributes in this line using example below`
KeySpec = 1
KeyLength = 2048
Exportable = TRUE
FriendlyName ="vdm"
MachineKeySet = TRUE
SMIME = False
PrivateKeyArchive = FALSE
UserProtected = FALSE
UseExistingKeySet = FALSE
ProviderName ="Microsoft RSA SChannel Cryptographic Provider"
ProviderType = 12
RequestType = PKCS10
KeyUsage = 0xa0
[EnhancedKeyUsageExtension]
OID=1.3.6.1.5.5.7.3.1 ; this is for Server Authentication
[Extensions]
2.5.29.17 ="{text}"
continue ="dns=b.teste.fccn.pt&dns=c.teste.fccn.pt"
[RequestAttributes]
;-----------------------------------------------
1.2.2 Para Server 2003 ou anterior
Para Windows Server 2003, Windows Server 2003 R2 ou Windows XP deve ser usado o modelo abaixo para o ficheiro request.inf.
No caso desta versão do Windows, por não suportar os SAN na forma de texto, este valor deve ser convertido para Base64-encoded.
A string deve ser gerada no formato: b.teste.fccn.pt,c.teste.fccn.pt
Existem vários sites disponíveis na Internet para fazer esta codificação. A título de exemplo deixamos este.
;----------------- request.inf -----------------
[Version]
Signature="$Windows NT$"
[NewRequest]
Subject ="CN=a.teste.fccn.pt, OU=RCTSAAI, O=Fundacao para a Ciencia e Tecnologia, L=Lisboa, S=Lisboa, C=PT"
KeySpec = 1
KeyLength = 2048
Exportable = TRUE
MachineKeySet = TRUE
SMIME = False
PrivateKeyArchive = FALSE
UserProtected = FALSE
UseExistingKeySet = FALSE
ProviderName ="Microsoft RSA SChannel Cryptographic Provider"
ProviderType = 12
RequestType = PKCS10
KeyUsage = 0xa0
[EnhancedKeyUsageExtension]
OID=1.3.6.1.5.5.7.3.1 ; this is for Server Authentication
[Extensions]
; 2003 Server
2.5.29.17=Yi50ZXN0ZS5mY2NuLnB0LGMudGVzdGUuZmNjbi5wdA==
Critical=2.5.29.17
[RequestAttributes]
;-----------------------------------------------
1.2.3 Gerar o CSR
Numa janela de DOS executar o seguinte comando para gerar o certificado. Este comando deve ser executado na mesma diretoria onde o ficheiro request.inf foi guardado.
certreq -new request.inf request.csr
Este comando deve ser executado numa janela de DOS com permissões de administrador ou com um user com essas permissões.
1.3 Sectigo - Gerar CSR
No portal Sectigo está também disponível mais informação sobre como gerar um CSR: How to Generate a CSR