Como eu crio um certificado SSL autoassinado?

59

Eu configurei SSL no meu servidor, agora preciso de dois arquivos:

  • um certificado
  • uma chave de certificado

Como faço para criar um certificado autoassinado para fins de teste?

    
por Stefano Palazzo 17.06.2011 / 08:35

2 respostas

84

O Ubuntu, mesmo o sabor "minimal", vem com o pacote ssl-cert pré-instalado, o que significa que você não precisa fazer nada.

Os arquivos que você está procurando já estão no seu sistema:

/etc/ssl/certs/ssl-cert-snakeoil.pem
/etc/ssl/private/ssl-cert-snakeoil.key


Avançado:

Se por algum motivo você precisar criar um novo certificado, poderá executar

sudo make-ssl-cert generate-default-snakeoil --force-overwrite 

Se você quiser alterar a data de expiração do certificado, poderá manipular o script make-ssl-cert em /usr/sbin/make-ssl-cert . Por volta de 124 há uma linha semelhante a esta:

openssl req -config $TMPFILE -new -x509 -nodes \ 

Onde você pode alterar a data de expiração adicionando o argumento -days :

openssl req -config $TMPFILE -new -days 365 -x509 -nodes \ 

Mais opções podem ser encontradas na página de manual de req .

    
por Stefano Palazzo 17.06.2011 / 08:36
23

Como já mencionado, o Ubuntu Server vem com as ferramentas necessárias. Dependendo da sua versão do servidor, você terá que procurar a documentação específica . Tentarei resumir o processo de geração de certificados autoassinados de o atual LTS (12.04) .

Primeiro, você gera as chaves da solicitação de assinatura de certificado (CSR):

openssl genrsa -des3 -out server.key 2048

Cabe a você inserir uma senha ou não. Se você fizer isso, toda vez que você (re) iniciar um serviço, use esse certificado, você terá que fornecer a frase secreta. Otoh você pode criar uma chave "insegura" sem uma frase secreta da segura:

openssl rsa -in server.key -out server.key.insecure
# shuffle the key names to continue without passphrases
mv server.key server.key.secure
mv server.key.insecure server.key

E agora você criará o CSR a partir da chave. Com o CSR e a chave, um certificado auto-assinado pode ser gerado:

openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

O último passo consiste em instalar o certificado e a chave, no Debian / Ubuntu normalmente em /etc/ssl :

sudo cp server.crt /etc/ssl/certs
sudo cp server.key /etc/ssl/private

E, finalmente, os aplicativos que usam o certificado / chave precisam ser configurados adequadamente.

    
por nietonfir 27.05.2013 / 16:01

Tags