Geração de certificados auto-assinados
Ir para navegação
Ir para pesquisar
Objetivo
Descrever a geração de certificados SSL auto-assinados para servidores Ubuntu.
Requisitos
- Servidor Ubuntu
- OpenSSL
Procedimentos
- Utilize o seguinte comando para gerar a chave privada e o certificado público em um mesmo arquivo:
# openssl req -x509 -nodes -days 3653 -newkey rsa:4096 -keyout mycert.pem -out mycert.pem
onde:
- req: aciona o utilitário para geração de certificados.
- -x509: gera um certificado auto-assinado.
- -nodes: especifica que a chave privada não será criptografada.
- -days 3653: especifica a validade, em dias, do certificado (3653 dias ou aproximadamente 10 anos).
- -newkey rsa:4096: especifica a criação da chave privada RSA com tamanho de 4096 bits.
- -keyout mycert.pem: especifica o arquivo mycert.pem que irá conter a chave privada.
- -out mycert.pem: especifica o arquivo mycert.pem que irá conter o certificado público.
Os seguintes dados serão solicitados:
- Country Name: Digite, com duas letras, o país (BR).
- State or Province Name: Digite o nome do estado (Sao Paulo, evite acentuação).
- Locality Name: Digite o nome da cidade (Sao Carlos).
- Organization Name: Digite o nome da organização ao qual pertence (Universidade de Sao Paulo).
- Organizational Unit Name: Digite o nome da unidade inserida na organização (Centro de Informatica de Sao Carlos).
- Common Name: Digite o endereço do serviço, hostname ou IP que utilizará este certificado (www.cisc.usp.br).
- Email Address: Digite o endereço eletrônico de contato em caso de problemas no certificado (suporte@sc.usp.br).
- Para verificar o conteúdo do arquivo gerado:
# openssl x509 -text -in mycert.pem
onde:
- x509: aciona o utilitário para visualização de certificados.
- -text: imprime o certificado no formato texto.
- -in mycert.pem: especifica o arquivo mycert.pem que contém o certificado.
- Proteja o arquivo gerado:
# chmod 600 mycert.pem
- Para que o OpenSSL localize e utilize o certificado corretamente, é necessário que o nome do arquivo que contenha o certificado seja o seu hash com a extensão .0 (ponto zero). Para verificar o hash de um certificado:
# openssl x509 -noout -hash -in mycert.pem
onde:
- x509: aciona o utilitário para visualização de certificados.
- -noout: não gera saída.
- -hash: imprime o valor do hash.
- -in mycert.pem: especifica o arquivo de entrada mycert.pem que contém o certificado.
- Ao invés de renomearmos o arquivo do certificado, apenas criamos um arquivo simbólico com o hash e a extensão .0:
# ln -sf mycert.pem `openssl x509 -hash -noout -in mycert.pem`.0
- Para verificar o funcionamento do certificado pelo OpenSSL:
# openssl verify -CApath . mycert.pem
Se link simbólico do hash estiver correto, a saída será:
mycert.pem: OK
Caso contrário, há problemas no hash e as possíveis mensagens de erro poderão ser emitidas:
- error 10 at 0 depth lookup:certificate has expired: a validade do certificado expirou.
- error 18 at 0 depth lookup:self signed certificate: o certificado é auto-assinado.