Como Configurar SSL Let’s Encrypt no Apache Solr: Domínio e IP (Atualizado 2026)

Blindagem Total: Configure SSL no Apache Solr para Domínio ou IP (Método Zero Trust 2026).

Escrito por
Emanuel Negromonte
Emanuel Negromonte é Jornalista, Mestre em Tecnologia da Informação e atualmente cursa a segunda graduação em Engenharia de Software. Com 14 anos de experiência escrevendo sobre...

Proteger o Apache Solr é crucial para impedir a interceptação de dados de busca sensíveis. A configuração padrão opera em HTTP, deixando brechas de segurança, mas é possível implementar criptografia de ponta a ponta usando certificados gratuitos adaptáveis a diferentes níveis de segurança.

Apache Solr SSL é a configuração que permite ao motor de busca operar sob o protocolo HTTPS criptografado (porta 8983). Utilizando a autoridade certificadora Let’s Encrypt, é possível automatizar a emissão de certificados tanto para domínios (validade padrão) quanto para IPs públicos (com rotação acelerada de chaves), garantindo integridade na transmissão de dados.

RESUMO DO TUTORIAL

  • Flexibilidade: Escolha entre certificado para Domínio (Padrão) ou IP Público.
  • Ciclo de Vida: Opções de renovação padrão (90 dias) ou Alta Segurança (6 dias).
  • Modernização: Configuração direta de arquivos PEM, sem necessidade de Java Keystore complexos.

Pré-requisitos do sistema

Para seguir este guia, você precisa de um servidor Linux (Ubuntu ou Debian) com acesso root/sudo. O Apache2 deve estar instalado funcionando como proxy reverso e o Apache Solr já deve estar rodando na porta padrão.

ALERTA: Certifique-se de que as portas 80 e 443 estejam abertas no firewall. O Let’s Encrypt precisa acessá-las para validar a propriedade do servidor.

1. Instale o Certbot e dependências

A ferramenta oficial para gerenciar certificados é o Certbot.

  1. Atualize a lista de pacotes do sistema:
Bash
sudo apt update
  1. Instale o núcleo do Certbot e o plugin Apache:
Bash
sudo apt install certbot python3-certbot-apache -y

2. Escolha sua estratégia de certificação

Nesta etapa, você deve escolher a rota adequada à sua infraestrutura.

Opção A: Certificado Padrão (Domínio + 90 Dias)

Ideal para servidores de produção padrão com DNS configurado (ex: https://www.google.com/url?sa=E&source=gmail&q=solr.seudominio.com).

  1. Solicite o certificado automatizado:sudo certbot –apache -d solr.seudominio.com
  2. Siga as instruções de tela (e-mail e aceite dos termos). O certificado será salvo em /etc/letsencrypt/live/solr.seudominio.com/.

Opção B: Alta Segurança (IP + Rotação de 6 Dias)

Ideal para ambientes “Zero Trust” ou acesso direto via IP, forçando a troca de chaves a cada 6 dias.

NOTA: O Let’s Encrypt emite certificados válidos por 90 dias. A estratégia de “6 dias” consiste em forçar a renovação via script para garantir que as chaves criptográficas sejam trocadas semanalmente.

  1. Gere o certificado para o IP (requer parada temporária do Apache se usar porta 80):sudo certbot certonly –standalone -d 1.2.3.4 –preferred-challenges http –pre-hook “systemctl stop apache2” –post-hook “systemctl start apache2”
  2. Crie o script de automação de ciclo curto:sudo nano /etc/cron.d/certbot-short-cycle
  3. Cole a regra de agendamento:
Bash
# Explicação: Executa as 03:00am. O comando --force-renewal ignora a validade restante e troca a chave. 
0 3 */6 * * root certbot renew --force-renewal --deploy-hook "systemctl restart solr apache2"

O certificado será salvo em /etc/letsencrypt/live/1.2.3.4/ (ou o nome do seu IP).

3. Configure o SSL no Apache Solr

Agora vamos instruir o Solr a usar os arquivos gerados. As versões modernas (9.x+) leem arquivos PEM diretamente.

  1. Edite o arquivo de ambiente do Solr (geralmente em /etc/default/solr.in.sh ou /opt/solr/bin/solr.in.sh):sudo nano /etc/default/solr.in.sh
  2. Adicione as configurações de SSL.Atenção: Substitua CAMINHO_DO_CERTIFICADO pelo caminho gerado no Passo 2 (seja solr.seudominio.com ou seu IP).
Bash
# Habilita SSL no Solr 
SOLR_SSL_ENABLED=true 
# Caminhos para os certificados 
SOLR_SSL_KEY_STORE=/etc/letsencrypt/live/CAMINHO_DO_CERTIFICADO/privkey.pem SOLR_SSL_TRUST_STORE=/etc/letsencrypt/live/CAMINHO_DO_CERTIFICADO/fullchain.pem 
# Configurações de autenticação (Deixe como false para configuração padrão) 
SOLR_SSL_NEED_CLIENT_AUTH=false 
SOLR_SSL_WANT_CLIENT_AUTH=false
  1. Ajuste as permissões de leitura (Crucial):O usuário solr precisa ler os arquivos criados pelo root.
Bash
# Substitua CAMINHO_DO_CERTIFICADO pelo nome da pasta criada 
sudo chown -R root:solr /etc/letsencrypt/live/ 
sudo chown -R root:solr /etc/letsencrypt/archive/ 
sudo chmod -R 640 /etc/letsencrypt/live/ 
sudo chmod -R 640 /etc/letsencrypt/archive/

4. Configure o Proxy Reverso Apache2

O Apache2 servirá como a porta de entrada segura.

  1. Habilite os módulos SSL e Proxy:sudo a2enmod proxy proxy_http ssl rewrite headers
  2. Crie ou edite o Virtual Host:sudo nano /etc/apache2/sites-available/solr.conf
  3. Insira a configuração, ajustando o ServerName para seu Domínio ou IP:
Bash
<VirtualHost *:443> 
# Use seu Domínio ou IP aqui 
ServerName solr.seudominio.com 
ErrorLog ${APACHE_LOG_DIR}/solr_error.log 
CustomLog ${APACHE_LOG_DIR}/solr_access.log combined 
SSLEngine on 
# Ajuste o caminho conforme o passo 2 
SSLCertificateFile /etc/letsencrypt/live/CAMINHO_DO_CERTIFICADO/fullchain.pem 
SSLCertificateKeyFile /etc/letsencrypt/live/CAMINHO_DO_CERTIFICADO/privkey.pem 
# Proxy para o Solr (agora via HTTPS) 
ProxyPreserveHost On 
ProxyPass /solr https://localhost:8983/solr 
ProxyPassReverse /solr https://localhost:8983/solr 
RequestHeader set X-Forwarded-Proto "https" 
</VirtualHost>
  1. Ative e reinicie:sudo a2ensite solr.confsudo systemctl restart apache2

5. Validação final

Para aplicar as mudanças no backend, reinicie o Solr.

  1. Reinicie o serviço:sudo systemctl restart solr
  2. Verifique o status:sudo systemctl status solr (Se falhar, verifique se o caminho dos certificados no solr.in.sh está correto e se as permissões chmod foram aplicadas).
  3. Teste no navegador: Acesse https://seu-ip-ou-dominio/solr.

Solução de problemas comuns

Solr não inicia após ativar SSL

Geralmente é um problema de permissão. O Solr roda com usuário restrito e o Let’s Encrypt cria arquivos como root.

  • Solução: Reexecute os comandos de chown e chmod listados no final do Passo 3.

Erro 503 ou 502 Bad Gateway

Ocorre se o Apache tenta conectar via HTTPS mas o Solr ainda está em HTTP (ou vice-versa).

  • Solução: Verifique se SOLR_SSL_ENABLED=true está ativo no solr.in.sh e se a linha ProxyPass no Apache aponta para https://.

Renovação de IP falhando

O Let’s Encrypt exige que o IP seja público e acessível na porta 80.

  • Solução: Se você escolheu a Opção B, verifique se nenhum firewall está bloqueando o tráfego de entrada na porta 80 durante a renovação.

Perguntas frequentes

Qual a vantagem da rotação de 6 dias?

A rotação curta (Opção B) reduz a janela de oportunidade de um ataque. Se sua chave privada for comprometida, ela será inválida em menos de uma semana, aumentando drasticamente a segurança em ambientes críticos.

Posso usar a Opção A (Padrão) com um IP?

O suporte oficial do Certbot para IPs é limitado e muitas vezes requer validação via arquivo (HTTP-01) em modo standalone. Para IPs, a Opção B (Standalone) é tecnicamente mais robusta, mesmo que você não queira a rotação de 6 dias (basta remover a flag --force-renewal do cron).

Preciso reinstalar o certificado ao atualizar o Solr?

Não. Como a configuração fica no arquivo solr.in.sh e os certificados ficam na pasta /etc/letsencrypt, a atualização do binário do Solr geralmente respeita as configurações externas existentes.

Compartilhe este artigo