No guia de hoje, discutiremos como gerar um certificado SSL autoassinado no Linux e também como implementá-lo no Apache. O SSL está se tornando cada vez mais importante à medida que a Internet se torna mais popular. Com os certificados Let’s Encrypt gratuitos se tornando uma mercadoria que todos podem usar, não há razão para ninguém usar SSL – sem mencionar os benefícios da classificação de pesquisa e o fato de que navegadores e mecanismos de pesquisa confiarão em seu site.
No entanto, você também pode gerar seu próprio certificado SSL autoassinado para uso privado em seu servidor. Um grande motivo para fazer isso é a criptografia. Embora seu certificado pessoal não signifique nada para os navegadores e os visitantes ainda receberão uma mensagem de aviso se visitarem seu site diretamente, você pode pelo menos ter certeza de que está protegido contra ataques de “intermediários”. Um certificado autoassinado é uma boa primeira etapa quando você está apenas testando coisas em seu servidor e talvez nem tenha um nome de domínio ainda.
Vamos começar com nosso procedimento passo a passo em como criar um certificado SSL autoassinado no Linux.
Índice
Etapa 1: Criar um par de chaves RSA
A primeira etapa para gerar seu próprio certificado SSL autoassinado é usar o pacote “openssl” no Linux / CentOS para criar um par de chaves RSA. Para fazer isso, certifique-se de ter o pacote instalado. Caso contrário, instale-o com este comando:
sudo yum install openssl
Provavelmente você já o tem disponível em seu sistema – agora ele deve ser instalado independentemente. Assim que o pacote for confirmado para ser instalado em seu sistema, gere o par de chaves usando o seguinte comando:
openssl genrsa -des3 -passout pass:x -out keypair.key 2048
Este comando usa criptografia de 2048 bits e gera um arquivo chamado keypair.key
, conforme mostrado aqui:
Como você pode ver, a chave foi gerada e colocada no diretório atual.
Etapa 2: Extraia a chave privada no Pasta “httpd”
A pasta /etc/httpd
é onde o sistema operacional mantém todos os itens importantes relacionados ao SSL. Primeiro, vamos criar uma nova pasta para armazenar todos os nossos arquivos relacionado à nossa chave privada:
sudo mkdir /etc/httpd/httpscertificate
Chamamos a pasta de httpscertificate
e faremos referência a ela por esse nome por todos os outros exemplos de linha de comando. Você pode nomear a pasta como quiser.
Para extrair a chave privada do arquivo de par de chaves que acabamos de criar, digite o fo a seguir:
openssl rsa -passin pass:x -in keypair.key -out /etc/httpd/httpscertificate/012.345.678.90.key
Substitua a seção em negrito pelo endereço IP do seu próprio servidor. Ou se você for capaz de acessar seu site com um nome de domínio, você também pode usar isso.
Isso criará um arquivo .key
na pasta que acabamos de criar. Quando este processo for concluído, podemos excluir o arquivo do par de chaves original:
rm keypair.key
Etapa 3: Criação de um arquivo “Solicitação de assinatura de certificado” (CSR)
Com a chave, podemos criar um arquivo .csr
especial que podemos assinar ou enviar para uma “Autoridade de Certificação”. Está em um formato padronizado e pode ser facilmente gerado com a chave da etapa anterior. Para criá-lo, digite o seguinte comando:
openssl req -new -key /etc/httpd/httpscertificate/012.345.678.90.key -out /etc/httpd/httpscertificate/012.345.678.90.csr
Novamente, substitua os itens em negrito pelo endereço IP ou nome de domínio definido na etapa 2. Ao executar este comando, a ferramenta solicitará algumas de suas informações pessoais, como sua localização e nome da organização:
Uma CA (abreviação de Autoridade de Certificação) pode usar esses detalhes para verificar se você é realmente quem diz ser. Tente preencher os campos com o máximo de informações possível.
Depois de inserir esses detalhes, a ferramenta terminará seu trabalho e colocará um .csr
arquivo no diretório que criamos apenas para este propósito.
Etapa 4: Criação do arquivo “.crt” do certificado
Com o CSR, podemos criar o arquivo do certificado final como segue. Agora usaremos nossos arquivos .csr
e .key
para criar nosso arquivo .crt
:
Isso cria um arquivo .crt
no local com todos os nossos outros arquivos. Agora sabemos como gerar nosso certificado SSL autoassinado. Aqui está uma captura de tela de os arquivos finais em nossa pasta de segurança:
Agora precisamos dizer ao Apache onde estão esses arquivos.
Etapa 5: Configurando o Apache para usar os arquivos
Tudo o que precisamos fazer agora é mostrar ao Apache onde estão nossos certificados autoassinados gerados. Primeiro, precisamos instalar o pacote mod_ssl
com o comando:
sudo yum install mod_ssl
Uma vez feito, isso colocará um ssl.conf
arquivo dentro da pasta /etc/httpd/conf.d/
. Precisamos modificar este arquivo padrão. Use seu editor de texto preferido:
sudo vi /etc/httpd/conf.d/ssl.conf
Agora role para baixo até encontrar as linhas que começam com:
SSLCertificateFileSSL CertificateKeyFile
Altere os caminhos padrão com os caminhos para o arquivo de certificado e arquivo de chave respectivamente, conforme mostrado aqui:
Salve suas alterações. Agora é só reiniciar o Apache com:
sudo apachectl restart
E pronto! Quando o Apache for reiniciado, ele será configurado para permitir conexões SSL usando os certificados SSL autoassinados gerados.
Quando você se conectar ao seu endereço IP via HTTPS na próxima vez, você será avisado de que não é um certificado confiável:
Tudo bem. Sabemos disso desde que assinamos nós mesmos! Continue e você será direcionado ao site real:
Aqui você pode ver que ele está usando o certificado que criamos. Não é muito útil para quem visita seu site, pois não pode verificar sua identidade. Mas você sabe que é seguro e, além disso, é criptografado. Nenhum homem no meio ataca!
Agora você sabe como gerar seus próprios certificados SSL autoassinados e implementá-los em seu servidor da web Apache.
Se você for um de nossos gerenciados Clientes de hospedagem VPS, podemos fazer tudo isso por você sem nenhum custo extra. Basta entrar em contato com nossos administradores de sistema e eles responderão à sua solicitação o mais rápido possível.