Guia de tecnologias

Passo 11. SSL para OpenERP no Ubuntu 10.04 LTS

7 min read Infraestrutura Atualizado 02 Oct 2025
SSL para OpenERP no Ubuntu — guia passo a passo
SSL para OpenERP no Ubuntu — guia passo a passo

Intenção e variantes de busca

  • Intenção principal: configurar SSL para OpenERP (agora Odoo) no Ubuntu 10.04
  • Variantes: SSL OpenERP Apache, OpenERP HTTPS Ubuntu, configurar SSL OpenERP WebDAV, XML-RPC seguro OpenERP

Introdução

Neste documento descrevo um fluxo prático para fornecer acesso criptografado (SSL/TLS) a um servidor OpenERP (versão compatível com Ubuntu 10.04 LTS). Usamos o Apache como proxy reverso e ponto de terminação SSL para o cliente web e para WebDAV/CalDAV. O cliente GTK usa XML-RPC seguro direto ao OpenERP. A escolha por certificados autoassinados é intencional para este guia de implantação local; para ambientes de produção, considere uma autoridade certificadora confiável.

Importante: o pacote Apache no Debian/Ubuntu tem caminhos e convenções específicas. Consulte /usr/share/doc/apache2.2-common/README.Debian.gz no seu servidor para detalhes do empacotamento e layout.

Pré-requisitos

  • Servidor Ubuntu 10.04 LTS com acesso root ou sudo
  • OpenERP e OpenERP Web instalados e funcionando
  • Conectividade localhost entre Apache e serviços OpenERP
  • Noções básicas de OpenSSL e edição de arquivos no terminal

Resumo da metodologia

  1. Instalar Apache e módulos necessários. 2. Gerar chave e certificado SSL. 3. Criar configuração de VirtualHost em Apache para 443. 4. Ajustar /etc/openerp-server.conf e /etc/openerp-web.conf para ouvir apenas em localhost e apontar para os arquivos SSL. 5. Reiniciar serviços e testar.

Passo 11.1. Instalar Apache e módulos necessários

Instale o Apache e habilite módulos usados como proxy e SSL.

Execute no servidor:

sudo apt-get install apache2

Em seguida, habilite os módulos necessários (mod_ssl, mod_proxy_http, mod_headers e opcional mod_rewrite):

sudo a2enmod ssl proxy_http headers rewrite

Importante: mod_ssl provê a terminação SSL; mod_proxy e mod_proxy_http fazem o proxy reverso; headers permite definir X-Forwarded-Proto, e rewrite ajuda com redirecionamentos HTTP→HTTPS.

Passo 11.2. Criar o certificado e a chave (autoassinados)

Criamos os arquivos em um diretório temporário e, depois, movemos para /etc/ssl/openerp.

cd
mkdir temp
cd temp

Gere uma nova chave privada (você será solicitado a digitar uma frase-senha):

openssl genrsa -des3 -out server.pkey 1024

Remova a frase-senha para evitar digitar no boot:

openssl rsa -in server.pkey -out server.key

Crie uma Certificate Signing Request (CSR):

openssl req -new -key server.key -out server.csr

Você verá prompts para preencher campos do certificado (Country, State, Locality, Organization, Common Name etc.). Para Common Name, use o domínio público ou o IP que os clientes usarão (ex.: your-ip-or-domain).

Autoassine o certificado por 365 dias (ajuste se necessário):

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

Ajuste proprietários e permissões:

sudo chown openerp:root server.crt server.key
sudo chmod 640 server.crt server.key

Crie o diretório final e mova os arquivos:

sudo mkdir /etc/ssl/openerp
sudo chown openerp:root /etc/ssl/openerp
sudo chmod 710 /etc/ssl/openerp
sudo mv server.crt server.key /etc/ssl/openerp/

Agora a chave e o certificado estão armazenados com permissões restritas.

Passo 11.3. Criar a configuração de site do Apache

Crie um novo VirtualHost para o SSL:

sudo nano /etc/apache2/sites-available/openerp-ssl

Cole o conteúdo abaixo (mantive a lógica original separando /webdav/ e /):


   SSLEngine on
   SSLCertificateFile /etc/ssl/openerp/server.crt
   SSLCertificateKeyFile /etc/ssl/openerp/server.key
   ProxyRequests Off
 
   Order deny,allow
   Allow from all
 
   ProxyVia On
   ProxyPass /webdav/ http://127.0.0.1:8069/webdav/
 
   ProxyPassReverse /webdav/
 
   Order Deny,Allow
   Allow from all
   Satisfy Any
 
 
   ProxyPass / http://127.0.0.1:8080/
 
   ProxyPassReverse /
 
   RequestHeader set "X-Forwarded-Proto" "https"
   # Fix IE problem (httpapache proxy dav error 408/409)
   SetEnv proxy-nokeepalive 1

Notas rápidas:

  • Mantive ProxyPass separado para /webdav/ (aponta para o XML-RPC do OpenERP) e para / (aponta para a interface web local na porta 8080).
  • A ordem importa: /webdav/ deve estar antes de /.

Habilite o novo site:

sudo a2ensite openerp-ssl

Redirecionamento HTTP → HTTPS (opcional)

Para redirecionar visitantes HTTP para HTTPS, ative mod_rewrite e adicione no arquivo /etc/apache2/sites-available/default (fora de blocos ):

RewriteEngine on
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R]

Isso força navegadores a usar HTTPS.

Passo 11.4. Ajustar as configurações do OpenERP e do cliente web

Edite /etc/openerp-server.conf para que serviços não-encriptados escutem apenas em localhost. Também informe onde estão chave e certificado para XMLRPC-SSL.

sudo nano /etc/openerp-server.conf

Defina os parâmetros (exemplo):

xmlrpc = True
xmlrpc_interface = 127.0.0.1
xmlrpc_port = 8069
netrpc = True
netrpc_interface = 127.0.0.1
netrpc_port = 8070
xmlrpcs = True
xmlrpcs_interface = 127.0.0.1
xmlrpcs_port = 8071
secure_pkey_file = /etc/ssl/openerp/server.key
secure_cert_file = /etc/ssl/openerp/server.crt

Se usar WebDAV/CalDAV, adicione ao final do arquivo:

[webdav]
enable = True
vdir = webdav

Em seguida, ajuste o arquivo do cliente web para aceitar somente conexões locais e trabalhar atrás de proxy:

sudo nano /etc/openerp-web.conf

Exemplo de parâmetros (corrigido para aspas simples/dobradas corretas):

# Alguns parâmetros do servidor que você pode ajustar
server.socket_host = "127.0.0.1"
# Defina True se estiver implantando atrás de um proxy (ex.: Apache com mod_proxy)
tools.proxy.on = True
# Se o proxy não adicionar X-Forwarded-Host, informe a URL pública
tools.proxy.base = 'https://your-ip-or-domain'
# Defina False para desabilitar verificações CSRF (não recomendado em geral)
tools.csrf.on = False

Observação: mantenha tools.proxy.on = True para que o cliente web gere URLs públicas corretas quando estiver atrás do Apache.

Passo 11.5. Reiniciar e testar

Reinicie os serviços para carregar as novas configurações:

sudo service openerp-server restart
sudo service openerp-web restart
sudo service apache2 restart

Testes principais:

Exemplo de URL CalDAV para um calendário:

https://your-ip-or-domain/webdav/DB_NAME/calendars/users/USERNAME/c/CALENDAR_NAME

Checklist por função

  • Administrador de sistema:
    • Verificar pacotes: apache2, openssl, módulos habilitados
    • Criar diretório /etc/ssl/openerp e aplicar permissões
    • Habilitar site openerp-ssl e reiniciar apache
  • Administrador OpenERP:
    • Atualizar /etc/openerp-server.conf e /etc/openerp-web.conf
    • Ativar webdav se necessário
    • Reiniciar serviços do OpenERP
  • Usuário final / Desktop:

Resolução de problemas comuns

  • Erro: Apache não sobe após habilitar site
    • Verifique sintaxe: sudo apache2ctl configtest
    • Revise logs: /var/log/apache2/error.log
  • Erros de permissão ao acessar /etc/ssl/openerp/server.key
    • Confirme proprietário (openerp:root) e permissões 640. Apache precisa apenas do certificado; o OpenERP precisa da chave.
  • Conexão recusada ao acessar porta 8071
    • Confirme xmlrpcs_interface = 127.0.0.1 e xmlrpcs_port = 8071 no /etc/openerp-server.conf
    • Reinicie openerp-server
  • WebDAV devolve 408/409 no IE
    • A linha SetEnv proxy-nokeepalive 1 no VirtualHost mitiga esse problema
  • Certificado autoassinado causa aviso no navegador
    • Esperado: navegadores alertam. Para evitar, use certificado emitido por AC confiável.

Quando essa solução falha (contraexemplos) e alternativas

  • Implantação em ambiente com domínio público e vários serviços: prefira certificados de uma CA pública (Let’s Encrypt, AC comercial) para evitar avisos.
  • Escalabilidade e balanceamento: em topologias com balanceador na frente do Apache, mova a terminação SSL para o balanceador ou use certificados no próprio load balancer.
  • Compliance/segurança rígida: ative TLS moderno (desabilite SSLv3/RC4), configure ciphers e HSTS. Para isso, ajuste configurações SSL no Apache e use ferramentas de hardening.

Mini-cheat sheet de comandos

  • Instalar Apache: sudo apt-get install apache2
  • Habilitar módulos: sudo a2enmod ssl proxy_http headers rewrite
  • Criar chave e CSR: openssl genrsa -des3 -out server.pkey 1024; openssl rsa -in server.pkey -out server.key; openssl req -new -key server.key -out server.csr
  • Autoassinar: openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
  • Permissões: sudo chown openerp:root server.crt server.key; sudo chmod 640 server.crt server.key
  • Mover para /etc/ssl/openerp: sudo mkdir /etc/ssl/openerp; sudo mv server.crt server.key /etc/ssl/openerp/
  • Habilitar site: sudo a2ensite openerp-ssl
  • Reiniciar serviços: sudo service openerp-server restart; sudo service openerp-web restart; sudo service apache2 restart

Fluxo de decisão (mermaid)

flowchart TD
  A[Começar: OpenERP em Ubuntu] --> B{Tem domínio público?}
  B -- Sim --> C{Usar CA confiável?}
  B -- Não --> D[Usar certificado autoassinado]
  C -- Sim --> E[Obter certificado 'Let's Encrypt/CA']
  C -- Não --> D
  E --> F[Instalar certificado no Apache]
  D --> F
  F --> G[Configurar ProxyPass / e /webdav/]
  G --> H[Ajustar configs openerp-server e openerp-web]
  H --> I[Testar HTTPS e XML-RPC seguro]

Glossário (uma linha cada)

  • SSL/TLS: protocolos de criptografia para tráfego HTTP e serviços remotos.
  • Proxy reverso: servidor que recebe requisições do cliente e as repassa a um servidor backend.
  • XML-RPC: protocolo remoto usado pelo cliente GTK para comunicar com o OpenERP.
  • WebDAV/CalDAV: extensões HTTP para manipulação de arquivos e calendários, respectivamente.

Notas de segurança e boas práticas

  • Em produção, prefira certificados de uma CA pública para evitar warnings.
  • Atualize o OpenERP e o sistema operacional para mitigar vulnerabilidades.
  • Considere desabilitar protocolos antigos (SSLv3) e restringir conjuntos de cifragem no Apache.
  • Armazene chaves privadas com permissões estritas e, se possível, use HSM ou gerenciadores de segredos.

Sumário

  • Instalamos Apache e módulos SSL/proxy.
  • Geramos chave privada, CSR e autoassinamos o certificado.
  • Criamos um VirtualHost em :443 com ProxyPass para /webdav/ (porta 8069 XMLRPC) e / (porta 8080 web).
  • Ajustamos /etc/openerp-server.conf e /etc/openerp-web.conf para ouvir apenas em localhost e apontar para certificados.
  • Reiniciamos serviços e testamos acesso HTTPS, cliente GTK (XML-RPC seguro) e CalDAV.

Se precisar, posso adicionar uma seção com exemplos de configuração TLS mais rígida para Apache (ciphers, protocolos, HSTS) ou fornecer uma versão do VirtualHost compatível com Apache 2.4 se você estiver usando uma versão posterior.

Autor
Edição

Materiais semelhantes

Ver contagem de dislikes no YouTube — guia completo
Tutoriais

Ver contagem de dislikes no YouTube — guia completo

Proteger dados em desastres naturais
Segurança de Dados

Proteger dados em desastres naturais

Proteção contra BYOVD: evitar drivers assinados vulneráveis
Segurança

Proteção contra BYOVD: evitar drivers assinados vulneráveis

SSL para OpenERP no Ubuntu — guia passo a passo
Infraestrutura

SSL para OpenERP no Ubuntu — guia passo a passo

Como escolher os melhores provedores de VPN
Segurança Digital

Como escolher os melhores provedores de VPN

Impedir Facebook usar histórico para anúncios
Privacidade

Impedir Facebook usar histórico para anúncios