Desenvolvimento HTTPS Local com Certificado SSL Autoassinado
Durante o desenvolvimento e teste local de aplicações web, simular uma conexão HTTPS semelhante ao ambiente de produção é fundamental. Embora certificados SSL autoassinados não sejam confiados por autoridades certificadoras públicas (CA), eles representam um método prático para implementar HTTPS em ambientes de desenvolvimento local. Neste guia, explicaremos detalhadamente como gerar certificados SSL ECC autoassinados eficientes e seguros usando a ferramenta OpenSSL integrada ao ServBay, e como configurá-los para seu site local no ServBay. Usaremos servbay.demo
como exemplo de domínio.
Compreender a configuração de HTTPS permite testar a fundo, em ambiente local, o comportamento do seu site sob conexões seguras, como lidar com avisos de conteúdo misto, flags de segurança de cookies, entre outros.
Visão Geral
Certificados autoassinados são criados e assinados por você mesmo, e não emitidos por uma CA de terceiros confiável. Eles são adequados para cenários que não requerem confiança pública, por exemplo:
- Ambientes de desenvolvimento local
- Servidores internos de teste
- Aplicações internas para dados não sensíveis
O ServBay integra a ferramenta OpenSSL, facilitando a geração dos arquivos de certificado diretamente pelo terminal.
Pré-requisitos
- ServBay já instalado e em execução.
- Familiaridade com operações básicas de linha de comando.
Passo 1: Gerando um Certificado SSL ECC Autoassinado
Recomendamos o uso de certificados ECC. Em comparação com os tradicionais RSA, eles oferecem mesmo nível de segurança com chaves menores, assinaturas e validações mais rápidas, além de menor consumo de recursos computacionais.
Veja como gerar um certificado SSL ECC autoassinado:
Gerar a chave privada ECC (Private Key)
Abra o terminal e execute o comando abaixo para criar uma chave privada ECC usando a curva
prime256v1
, salvando-a comoservbay.demo.key
.shopenssl ecparam -genkey -name prime256v1 -out servbay.demo.key
1openssl
: Chama o utilitário OpenSSL.ecparam
: Para manipulação de parâmetros ECC.-genkey
: Gera a chave.-name prime256v1
: Define a curva ECC a ser usada.prime256v1
(NIST P-256) é uma escolha comum e segura.-out servbay.demo.key
: Nome do arquivo da chave privada de saída.
Gerar uma solicitação de assinatura do certificado (CSR)
Utilize a chave privada
servbay.demo.key
criada no passo anterior para gerar um arquivo CSR (Certificate Signing Request) chamadoservbay.demo.csr
. O CSR inclui dados relevantes para o certificado (como domínio, nome da organização) e é assinado pela sua chave privada.shopenssl req -new -key servbay.demo.key -out servbay.demo.csr
1Ao executar o comando, o OpenSSL solicitará várias informações para preencher o CSR. Preencha conforme pedido. O campo mais importante é
Common Name (e.g. server FQDN or YOUR name)
, onde você deve inserir o domínio utilizado no seu ambiente local, ex:servbay.demo
. Demais campos podem ser preenchidos de acordo com sua preferência ou exemplo abaixo.Exemplo de preenchimento:
Country Name (2 letter code) [AU]:CN # Código do país, ex: CN (China) State or Province Name (full name) [Some-State]:Hong Kong # Estado ou província Locality Name (eg, city) []:Kowloon # Cidade Organization Name (eg, company) [Internet Widgits Pty Ltd]:ServBay # Nome da organização Organizational Unit Name (eg, section) []:Development # Departamento ou unidade Common Name (e.g. server FQDN or YOUR name) []:servbay.demo # **Importante: domínio local do site** Email Address []:[email protected] # E-mail de contato Please enter the following 'extra' attributes to be sent on in your certificate request A challenge password []: # Opcional, deixar em branco An optional company name []: # Opcional, deixar em branco
1
2
3
4
5
6
7
8
9
10
11Gerar o certificado autoassinado
Por fim, utilizando o CSR (
servbay.demo.csr
) e a chave privada (servbay.demo.key
), gere um certificado SSL autoassinado chamadoservbay.demo.crt
, com validade de 365 dias.shopenssl x509 -req -days 365 -in servbay.demo.csr -signkey servbay.demo.key -out servbay.demo.crt
1openssl x509
: Manipula certificados no formato X.509.-req
: Indica que a entrada é um CSR.-days 365
: Validade de 365 dias.-in servbay.demo.csr
: Arquivo CSR de entrada.-signkey servbay.demo.key
: Chave utilizada para assinar o certificado (autoassinatura).-out servbay.demo.crt
: Nome do arquivo de certificado de saída.
Após esses passos, os arquivos
servbay.demo.key
(chave privada),servbay.demo.csr
(CSR) eservbay.demo.crt
(certificado autoassinado) estarão disponíveis no diretório atual.
(Imagem ilustrativa: processo de geração dos arquivos de certificado via comandos OpenSSL no terminal)
Passo 2: Configurando o Certificado SSL Autoassinado no ServBay
Depois de gerar os arquivos de certificado, você precisa movê-los para um local acessível pelo ServBay e configurá-los no gerenciamento de sites. O ServBay recomenda armazenar todos os certificados SSL em /Applications/ServBay/ssl
, criando subdiretórios por domínio para facilitar a organização.
Mover os arquivos de certificado para o diretório apropriado
De acordo com a estrutura sugerida pelo ServBay, mova os arquivos para
/Applications/ServBay/ssl/private/tls-certs/servbay.demo/
. Crie o diretório se ainda não existir.sh# Criar o diretório caso não exista mkdir -p /Applications/ServBay/ssl/private/tls-certs/servbay.demo/ # Mover os arquivos mv servbay.demo.key /Applications/ServBay/ssl/private/tls-certs/servbay.demo/ mv servbay.demo.crt /Applications/ServBay/ssl/private/tls-certs/servbay.demo/ # Arquivo CSR pode ser movido para backup/registro, embora geralmente não seja mais necessário mv servbay.demo.csr /Applications/ServBay/ssl/private/tls-certs/servbay.demo/
1
2
3
4
5
6
7
8/Applications/ServBay/ssl/
: Diretório padrão para arquivos SSL no ServBay.private/tls-certs/
: Estrutura recomendada para armazenamento de certificados TLS/SSL privados.servbay.demo/
: Subdiretório por domínio, facilitando a administração de múltiplos sites.
Abrir o painel de controle do ServBay
Inicie o aplicativo ServBay e acesse sua interface de gerenciamento.
Adicionar ou editar configuração de site
No painel, navegue até a aba Websites (Sites). Se ainda não houver uma configuração para
servbay.demo
, clique em Adicionar Site (Add Website). Caso exista, basta editar a configuração atual.Configurar SSL/HTTPS
No detalhe da configuração do site, localize a área de configurações SSL/HTTPS (ou equivalente).
Selecionar a fonte do certificado como Custom
Na opção de emissão/tipo de certificado SSL, selecione Custom (Certificado personalizado).
Indicar os caminhos dos arquivos de certificado
Informe, nos campos apropriados, os caminhos dos arquivos criados anteriormente:
- Certificate Key File (Arquivo da chave privada):
/Applications/ServBay/ssl/private/tls-certs/servbay.demo/servbay.demo.key
- Certificate File (Arquivo do certificado):
/Applications/ServBay/ssl/private/tls-certs/servbay.demo/servbay.demo.crt
- Certificate Key File (Arquivo da chave privada):
Definir o domínio
Confirme que o campo Domain (Domínio) do site está configurado como
servbay.demo
.Salvar e aplicar configuração
Salve as alterações. O ServBay solicitará que você aplique a configuração, geralmente reiniciando o web server relacionado (como Caddy ou Nginx). Confirme e aplique.
(Imagem ilustrativa: configuração do caminho do certificado SSL personalizado no painel do ServBay)
Verificando a Configuração HTTPS
Com tudo configurado, acesse https://servbay.demo/
pelo navegador para checar se o HTTPS está ativo.
Como você está usando um certificado autoassinado, que não foi emitido por uma CA pública confiável pelo sistema operacional, o navegador exibirá um alerta de segurança, informando não confiar no certificado ou apontando riscos de privacidade. Isso é esperado.
(Imagem ilustrativa: mensagem de alerta exibida pelo navegador ao acessar site com certificado autoassinado)
Você pode optar por continuar (normalmente há uma opção "Avançado" ou "Continuar assim mesmo") ou, para evitar ver o alerta toda vez, adicionar o certificado autoassinado ao repositório de confiança do seu sistema operacional.
(Imagem ilustrativa: visualização dos detalhes do certificado autoassinado no navegador)
Observe os detalhes do certificado para confirmar que o navegador carregou, de fato, o certificado configurado para servbay.demo
.
Observações Importantes
- Segurança da chave privada: O arquivo de chave privada (
.key
) é altamente sensível, devendo ser protegido contra acessos não autorizados. No ambiente local, garanta que apenas o usuário do ServBay possa ler o arquivo. - Caminho dos arquivos: Confirme que os caminhos configurados no ServBay para os arquivos de certificado estejam completos e corretos.
- Correspondência de domínio: O domínio preenchido no campo Common Name (CN) ao gerar o certificado deve ser idêntico ao domínio configurado para o site no ServBay. Caso contrário, o navegador acusará erro de incompatibilidade de domínio.
- Validade do certificado: O período de validade é determinado na geração do certificado (parâmetro
-days
). Após o vencimento, um novo certificado deve ser gerado e configurado.
Temas Relacionados e Alternativas
Embora certificados autoassinados sejam úteis para testes HTTPS locais, caso deseje uma experiência mais similar à confiança de CA pública, considere outras opções providas pelo ServBay:
- ServBay User CA: O ServBay oferece uma ferramenta CA de usuário. Você pode adicionar a CA do ServBay ao repositório de confiança do sistema operacional e emitir certificados assinados por ela para seus sites locais. Assim, os certificados serão confiáveis por navegadores e sistema, eliminando os avisos. Ideal para testar OAuth, webhooks e cenários que exigem certificados confiáveis.
- ServBay Public CA: O ServBay também fornece funcionalidade para emissão de certificados de uma CA pública para domínios locais, com configuração automática da confiança no sistema.
Essas alternativas são mais práticas do que a geração manual e gerenciamento de certificados autoassinados, especialmente ao lidar com múltiplos sites locais. Consulte a documentação do ServBay para instruções de uso dessas funcionalidades.
Perguntas Frequentes (FAQ)
- P: Por que, mesmo após gerar o certificado, meu navegador continua indicando que o site não é seguro?
- R: Certificados autoassinados não são confiáveis por CA públicas, portanto o navegador exibe avisos por segurança — isto é esperado. Para evitar o alerta, adicione o certificado autoassinado (ou a CA que o assinou, caso use a User CA do ServBay) ao repositório de confiança do sistema operacional.
- P: Posso usar certificados RSA?
- R: Sim. O OpenSSL também permite a geração de certificados RSA. Utilize o comando
openssl genrsa -out servbay.demo.key 2048
para criar a chave RSA e siga os passos de CSR e geração de certificado normalmente. Recomendamos, contudo, usar ECC para obter melhor desempenho.
- R: Sim. O OpenSSL também permite a geração de certificados RSA. Utilize o comando
- P: Como adicionar um certificado autoassinado à confiança do macOS?
- R: Abra o aplicativo "Acesso às Chaves" (Keychain Access), selecione o chaveiro “Sistema” ou “Login”, arraste o arquivo
.crt
para a janela. Clique duas vezes no certificado importado, expanda a seção "Confiança" e defina "Ao usar SSL" para "Sempre Confiar". Feche, forneça senha se solicitado e reinicie o navegador.
- R: Abra o aplicativo "Acesso às Chaves" (Keychain Access), selecione o chaveiro “Sistema” ou “Login”, arraste o arquivo
Resumo
Neste tutorial, você aprendeu como gerar certificados SSL ECC autoassinados usando o OpenSSL integrado ao ServBay e configurá-los para seu site local. Embora certificados autoassinados sejam indicados principalmente para desenvolvimento e testes locais, representam um passo importante para compreender o funcionamento do HTTPS e viabilizar conexões seguras no ambiente local. Para facilitar ainda mais a administração da confiança local, sugerimos explorar os recursos de User CA e Public CA do ServBay. Esperamos que essas instruções melhorem seu fluxo de desenvolvimento web local.