Гид по технологиям

SSL: настройка Apache как SSL-прокси для OpenERP на Ubuntu 10.04 LTS

5 min read Администрирование Обновлено 02 Oct 2025
SSL для OpenERP на Ubuntu — Apache как прокси
SSL для OpenERP на Ubuntu — Apache как прокси

Введение

В этой инструкции показан рабочий способ предоставления SSL‑шифрованного доступа к свежей установке OpenERP на Ubuntu 10.04 LTS. Apache используется как обратный прокси и точка завершения SSL для веб‑клиента и WebDAV/CalDAV; GTK‑клиент подключается по зашифрованному XMLRPC непосредственно к серверу OpenERP.

Определения в одну строку:

  • SSL/TLS: протоколы для шифрования сетевого трафика.
  • Обратный прокси: сервер, принимающий внешние запросы и пересылающий их внутрь локальной сети.

Почему Apache: он широко распространён, стабилен и имеет встроенные модули для SSL, проксирования и заголовков.

Важно: в этом руководстве используется самоподписанный сертификат. Для продакшна рекомендуется использовать сертификат от доверенного центра сертификации.

Что делает эта схема

  • Apache принимает HTTPS‑запросы на порту 443.
  • Apache завершает SSL и проксирует трафик к внутренним сервисам OpenERP: веб‑интерфейсу и XMLRPC/WebDAV.
  • Внутренние сервисы OpenERP слушают только на localhost, так что внешние незашифрованные подключения блокируются.

Шаг 11.1. Установка Apache и модулей

Установите apache2:

sudo apt-get install apache2

Включите необходимые модули: mod_ssl не всегда активирован по умолчанию; нам также нужны proxy_http, headers и (опционально) rewrite:

sudo a2enmod ssl proxy_http headers rewrite

Шаг 11.2. Создание сертификата и ключа

Создадим файлы в временной директории, затем переместим их в /etc/ssl/openerp.

cd
mkdir temp
cd temp

Сгенерируйте новый приватный ключ (будет запрошен passphrase):

openssl genrsa -des3 -out server.pkey 1024

Удалим passphrase, чтобы при старте сервера не требовалось вводить пароль:

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

Создаём запрос на подпись (CSR):

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

При заполнении укажите корректные поля. Поле Common Name обычно совпадает с публичным доменом или IP.

Наконец, самоподпись сертификата на 365 дней:

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

Установим корректные права и владельца:

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

Перемещаем в безопасную директорию:

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/

Теперь у Apache есть файлы сертификата и ключа в /etc/ssl/openerp.

Шаг 11.3. Конфигурация виртуального хоста Apache

Создайте файл конфигурации виртуального хоста:

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

Вставьте (или проверьте) следующий блок виртуального хоста:


   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

Обратите внимание:

  • Есть два блока Proxy: один для /webdav/, другой для /. Если вам не нужен WebDAV/CalDAV — удалите соответствующую секцию.
  • Порядок важен: /webdav/ должен предшествовать /, иначе правило / перекроет более специфичное.

Включите сайт:

sudo a2ensite openerp-ssl

Перенаправление HTTP на HTTPS (опционально)

Чтобы автоматически редиректить HTTP (порт 80) на HTTPS, добавьте в /etc/apache2/sites-available/default (вне блоков ) следующие строки:

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

Шаг 11.4. Правки конфигураций OpenERP

Сделаем так, чтобы незашифрованные сервисы слушали только localhost и чтобы сервер знал путь к ключу и сертификату.

Отредактируйте /etc/openerp-server.conf:

sudo nano /etc/openerp-server.conf

Убедитесь, что присутствуют и настроены следующие параметры:

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 =
xmlrpcs_port = 8071
secure_pkey_file = /etc/ssl/openerp/server.key
secure_cert_file = /etc/ssl/openerp/server.crt

Если вы хотите включить WebDAV/CalDAV, добавьте в конец конфигурации:

[webdav]
enable = True
vdir = webdav

Далее отредактируйте конфигурацию веб‑клиента /etc/openerp-web.conf:

sudo nano /etc/openerp-web.conf

Пример настроек:

# Some server parameters that you may want to tweak
server.socket_host = "127.0.0.1"
# Set to True if you are deploying your App behind a proxy
# e.g. Apache using mod_proxy
tools.proxy.on = True
# If your proxy does not add the X-Forwarded-Host header, set
# the following to the public host url.
tools.proxy.base = 'https://your-ip-or-domain'
# Set to false to disable CSRF checks
tools.csrf.on = False

Замените tools.proxy.base на публичный домен или IP сервера.

Шаг 11.5. Перезапуск и проверка

Перезапустите сервисы, чтобы применить изменения:

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

Проверки:

  • Внешний доступ к веб‑интерфейсу по HTTPS: https://your-ip-or-domain
  • GTK‑клиент: укажите порт 8071 и протокол XMLRPC (Secure)
  • WebDAV ссылка имеет формат:
https://your-ip-or-domain/webdav/DB_NAME/calendars/users/USERNAME/c/CALENDAR_NAME

Рекомендации по безопасности

Important: Самоподписанный сертификат удобен для тестов, но не обеспечивает доверия для браузеров и мобильных клиентов. Для продакшна используйте сертификат от CA.

Практические советы:

  • Отключите старые протоколы SSLv2/SSLv3 и разрешите только TLS 1.2+/1.3, если ваша версия Apache их поддерживает.
  • Включите HTTP Strict Transport Security (HSTS) заголовок для защиты от восстановления HTTP.
  • Ограничьте права на приватный ключ (chmod 640, владелец — пользователь процесса OpenERP).
  • Минимизируйте набор поддерживаемых шифров и используйте безопасные наборы шифров (cipher suites). Точные строки зависят от версии OpenSSL на вашем сервере.
  • Регулярно обновляйте систему и пакеты Apache/OpenSSL.

Короткая методология проверки безопасности:

  1. Проверить, что 8080, 8069, 8070 недоступны извне (netstat/ss и внешние сканеры).
  2. Подключиться по HTTPS и проверить цепочку сертификатов и заголовки.
  3. Выполнить базовый SSL тест (например, онлайн сканеры) для оценки протоколов и шифров.

Отладка и распространенные проблемы

Проверки при проблемах:

  • Если веб‑интерфейс недоступен: проверьте логи Apache (/var/log/apache2/error.log, access.log) и логи OpenERP.
  • Если WebDAV не работает: убедитесь, что блок /webdav/ присутствует и что OpenERP слушает xmlrpc (порт 8069).
  • Если GTK‑клиент не подключается: убедитесь, что в клиенте выбран XMLRPC Secure и порт 8071.
  • Если при перезапуске Apache возникает ошибка конфигурации: проверьте синтаксис командой apache2ctl configtest.

Чеклист для отладки:

  • Проверить права на /etc/ssl/openerp/*.key и .crt
  • Проверить, что openerp-server прослушивает localhost:8069 и 8071
  • Проверить, что Apache слушает 0.0.0.0:443
  • Проверить заголовок X-Forwarded-Proto от Apache

Руководство по ролям

Администратор:

  • Генерация и хранение ключей и сертификатов.
  • Мониторинг логов и обновлений безопасности.
  • Настройка Apache и firewall.

Разработчик/интегратор:

  • Проверка корректности ProxyPass и обработки заголовков.
  • Тестирование WebDAV/CalDAV и API на соответствие ожиданиям.

Конечный пользователь:

  • Подключение к HTTPS URL и проверка сертификата.
  • Для GTK‑клиента выбрать XMLRPC (Secure) и порт 8071.

Модель принятия решения: самоподписанный или CA

flowchart TD
  A[Нужен временный тестовый доступ?] -->|Да| B[Используйте самоподписанный сертификат]
  A -->|Нет| C[Планируется продакшн]
  C --> D[Имеется публичный домен?]
  D -->|Да| E[Получите сертификат от CA 'Let's Encrypt/другие']
  D -->|Нет| F[Рассмотрите внутренний CA или приобретение домена]

Контрольные критерии приёмки

  • Веб‑интерфейс доступен по HTTPS и отображается без локальных конфигураций прокси.
  • Незашифрованные порты (8080, 8069, 8070) не принимают внешние соединения.
  • GTK‑клиент успешно подключается через XMLRPC Secure на порт 8071.
  • WebDAV/CalDAV работают по URL /webdav/ и корректно авторизуют пользователей.

Краткая карта действий после установки

  1. Сгенерировать сертификат и ключ, переместить в /etc/ssl/openerp.
  2. Настроить VirtualHost Apache и включить необходимые модули.
  3. Ограничить слушающие интерфейсы OpenERP на 127.0.0.1.
  4. Перезапустить сервисы и проверить доступность по HTTPS.
  5. Провести базовую проверку безопасности и логи.

Частые ошибки и как их исправить

  • Ошибка: «502 Bad Gateway» — проверьте, слушает ли внутренний сервис на указанном порту и правильно ли указан адрес в ProxyPass.
  • Проблемы с WebDAV — убедитесь, что секция присутствует и что OpenERP включает WebDAV.
  • Браузер ругается на сертификат — это ожидаемо для самоподписанных сертификатов; для устранения используйте сертификат от доверенного CA.

Итог

Эта схема позволяет централизованно управлять SSL через Apache, оставляя внутренние сервисы OpenERP доступными только локально. Для тестовых и небольших установок самоподписанный сертификат упрощает развертывание, однако для боевого использования следует применять сертификат, подписанный доверенным CA, и дополнительную жёсткую настройку TLS.

Summary: реализуйте SSL‑терминацию на Apache, ограничьте слушающие интерфейсы OpenERP до localhost, протестируйте WebDAV и GTK‑подключение по защищённому XMLRPC, и примените практики безопасности для продакшн‑окружения.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Защита данных при урагане и наводнении
Безопасность данных

Защита данных при урагане и наводнении

Защита от BYOVD: rwdrv.sys и отключение Defender
Безопасность

Защита от BYOVD: rwdrv.sys и отключение Defender

SSL для OpenERP на Ubuntu — Apache как прокси
Администрирование

SSL для OpenERP на Ubuntu — Apache как прокси

Как выбрать лучший VPN-провайдер
Безопасность

Как выбрать лучший VPN-провайдер

Отключить таргетинг Facebook по истории просмотров
Конфиденциальность

Отключить таргетинг Facebook по истории просмотров

Исправить чёрный экран камеры iPhone
Техподдержка

Исправить чёрный экран камеры iPhone