기술 가이드

OpenERP 서버에서 Apache로 SSL 설정 (Ubuntu 10.04)

6 min read 서버관리 업데이트됨 02 Oct 2025
OpenERP에 Apache로 SSL 설정하기 (Ubuntu 10.04)
OpenERP에 Apache로 SSL 설정하기 (Ubuntu 10.04)

목표 및 개요

이 문서는 Ubuntu 10.04 LTS Server에서 실행 중인 새 OpenERP 서버에 SSL 암호화 접근을 제공하는 현재의 방법을 설명합니다. Apache를 리버스 프록시로 사용해 웹(HTTP) 트래픽과 WebDAV/CalDAV 트래픽을 SSL에서 종료(termination)합니다. GTK 데스크톱 클라이언트는 OpenERP 서버의 XMLRPC-SSL 포트로 직접 암호화된 연결을 맺습니다.

중요: 이 가이드에서는 자체 서명(self-signed) 인증서를 사용합니다. 자체 서명의 장단점 논의와 공개 CA 사용 방법은 이 문서 범위를 벗어납니다.

Note: Debian/Ubuntu 계열에서 Apache 패키징과 설정 방식은 다른 배포판과 차이가 있으므로, 서버에 있는 /usr/share/doc/apache2.2-common/README.Debian.gz 문서를 참고하세요.

사전 조건

  • Ubuntu 10.04 LTS Server에 root 또는 sudo 권한이 있는 계정
  • OpenERP(Server) 및 OpenERP-Web(웹 클라이언트)이 설치되어 있고 기본 포트에서 동작 중(예: XMLRPC 8069, 웹클라이언트 8080)
  • Apache2를 설치하고 모듈을 활성화할 수 있는 권한
  • openssl 명령 사용 가능

중요: 운영 환경에서는 자체 서명 대신 신뢰 가능한 CA에서 발급된 인증서를 사용하는 것을 권장합니다.

단계 요약

  1. Apache 및 필요한 모듈 설치
  2. 인증서와 키 생성(자체 서명)
  3. Apache에 가상호스트(SSL) 구성 파일 생성
  4. OpenERP 서버 및 웹클라이언트 설정 변경하여 내부 바인딩으로 제한
  5. 서비스 재시작 후 동작 확인

Step 11.1. Apache 및 필요 모듈 설치

서버에 다음 명령으로 apache2를 설치합니다:

sudo apt-get install apache2

그다음 SSL과 프록시 관련 모듈(mod_ssl은 Ubuntu에서 ssl로 제공), mod_proxy, mod_proxy_http, mod_headers, (선택) mod_rewrite 등을 활성화합니다:

sudo a2enmod ssl proxy_http headers rewrite

이제 SSL 인증서와 키를 생성하겠습니다.

Step 11.2. 인증서 및 키 생성

임시 디렉터리에서 파일을 생성한 뒤 최종 위치로 이동하는 방식을 사용합니다(처음 cd는 홈 디렉터리로 이동하기 위함입니다).

cd
mkdir temp
cd temp

새 개인키를 생성합니다. 이 과정에서 passphrase(암호문구)를 입력하라는 프롬프트가 뜹니다:

openssl genrsa -des3 -out server.pkey 1024

서버가 부팅할 때마다 passphrase를 입력하고 싶지 않다면 키에서 passphrase를 제거합니다:

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

다음으로 CSR(Signing Request)을 만듭니다. 이 요청서에는 최종 인증서에 들어갈 정보가 포함됩니다:

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

여러 항목을 묻는 프롬프트가 표시됩니다. 일부는 비워둘 수 있고, 기본값을 사용하거나 ‘.’를 입력해 필드를 비워둘 수 있습니다. 예시:

  • Country Name (2 letter code) [AU]:
  • State or Province Name (full name) [Some-State]:
  • Locality Name (eg, city) []:
  • Organization Name (eg, company) [Internet Widgits Pty Ltd]:
  • Organizational Unit Name (eg, section) []:
  • Common Name (eg, YOUR name) []: <– 중요: 이 값은 인증서의 CN으로, 공개 도메인 또는 서버 IP를 입력
  • Email Address []:
  • A challenge password []:
  • An optional company name []:

마지막으로 자체 서명 인증서를 생성합니다(유효기간 예: 365일):

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

작업 디렉터리에서 실제로 필요한 파일은 server.key(개인키)와 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에 인증서·키 경로를 알려줄 준비가 되었습니다.

중요: 개인키(server.key)는 최소 권한(읽기 권한을 갖는 사용자 제한 등)으로 관리하세요. 키 노출은 즉시 보안 사고로 이어집니다.

Step 11.3. Apache 사이트 구성 파일 생성

새 VirtualHost 구성 파일을 생성합니다:

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

설명:

  • /webdav/ 요청은 OpenERP의 XMLRPC(WebDAV) 포트(예: 8069)로 전달합니다.
  • /(루트) 요청은 웹 클라이언트(예: 8080)로 전달합니다.
  • 순서가 중요합니다. /가 /webdav/보다 먼저 나오면 WebDAV 요청이 제대로 매칭되지 않을 수 있습니다.

사이트를 활성화합니다:

sudo a2ensite openerp-ssl

선택적으로 비암호화(HTTP) 요청을 HTTPS로 리디렉션하려면 /etc/apache2/sites-available/default 파일(또는 적절한 non-ssl 사이트 파일)에 mod_rewrite 규칙을 추가합니다:

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

Step 11.4. OpenERP 서버 및 웹 클라이언트 설정 변경

외부에서 비암호화 서비스가 접근되지 않도록 OpenERP 서버와 웹 클라이언트를 로컬(Localhost)로 바인딩합니다. 그리고 XMLRPC-SSL이 사용할 키와 인증서 경로를 지정합니다.

서버 설정 파일 편집:

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

웹 클라이언트 설정 파일 편집:

sudo nano /etc/openerp-web.conf

다음과 같이 수정해 웹 클라이언트도 로컬에서만 수신하도록 합니다(문법과 따옴표는 ASCII 표준 따옴표로 사용):

# 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를 넣으세요.

Step 11.5. 동작 확인

변경 사항을 적용하려면 서비스를 재시작합니다:

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

검증 포인트:

  • 웹 클라이언트는 포트 8080으로 직접 접근하면 안 됩니다(예: http://your-ip:8080 은 차단되어야 함).
  • GTK 클라이언트는 NetRPC(8070) 또는 XMLRPC(8069) 비암호화 포트로 연결되어서는 안 됩니다.
  • 웹 브라우저에서 https://your-ip-or-domain 로 접속하면 OpenERP 웹 인터페이스가 표시되어야 합니다.
  • GTK 클라이언트(데스크톱)에서는 포트 8071을 사용하고 프로토콜로 XMLRPC(Secure)를 선택해야 합니다.

CalDAV 캘린더 URL 예시:

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

문제 해결 팁

  • 브라우저에서 자체 서명 인증서 경고가 뜨면 인증서가 신뢰된 CA에 의해 발급되지 않았기 때문입니다(예상 동작).
  • 403/404/502 에러: Apache 로그(/var/log/apache2/error.log)와 OpenERP 로그를 확인하세요.
  • ProxyPass 설정에서 경로 순서가 중요합니다. /가 먼저 나오면 /webdav/ 규칙이 무시됩니다.

추가 자료: 역할 기반 체크리스트

시스템 관리자 체크리스트:

  • Apache와 필요한 모듈 설치 및 활성화
  • 인증서와 개인키 생성 및 보안 권한 설정
  • /etc/ssl/openerp 디렉터리 권한 확인
  • Apache 가상호스트 SSL 구성 적용 및 사이트 활성화
  • 방화벽(port) 규칙: 443 허용, 8080/8069 등 내부 포트는 로컬 바인딩으로 외부 차단
  • 서비스 재시작 및 로그 확인

응용 개발자/운영팀 체크리스트:

  • tools.proxy.base와 X-Forwarded-* 헤더 의존성 점검
  • CSRF 설정과 리버스 프록시 관련 보안 정책 검토
  • WebDAV 기능이 필요한지 여부 확인 및 vdir 설정

사용자 안내(간단 문구):

보안 하드닝 권장 사항

  • 자체 서명 인증서는 테스트/내부 환경에 적합하며, 운영 환경에서는 공인 CA 또는 Let’s Encrypt 같은 ACME 기반 인증서를 사용하세요.
  • TLS 프로토콜과 사이퍼 설정을 강화하세요(불필요한 오래된 프로토콜 비활성화). Apache의 SSLProtocol/SSLCipherSuite 지침을 따릅니다.
  • 개인키 접근 권한을 최소화하고, 키가 유출되면 즉시 인증서 재발급/교체하세요.
  • 정기적으로 패치 적용 및 로그 모니터링을 수행하세요.

1줄 용어집

  • SSL/TLS: 네트워크 통신의 암호화 계층
  • Apache: 널리 사용되는 HTTP 서버 소프트웨어
  • WebDAV/CalDAV: 웹 기반 파일/캘린더 접근을 위한 프로토콜
  • XMLRPC: 원격 프로시저 호출을 위한 XML 기반 프로토콜

수용 기준

  • HTTPS(443)를 통해 OpenERP 웹 UI에 정상 접근 가능
  • 비암호화 포트(8080, 8069, 8070)는 외부에서 접근 불가
  • GTK 클라이언트가 XMLRPC-SSL(포트 8071)로 접속 가능
  • WebDAV(사용 시)가 https를 통해 정상 동작

테스트 케이스(간단)

  • TC1: https://your-ip-or-domain 접속 → 웹 로그인 페이지 표시
  • TC2: http://your-ip-or-domain:8080 접속 → 접속 차단 또는 연결 실패
  • TC3: GTK 클라이언트로 포트 8071(XMLRPC-SSL) 접속 → 정상 로그인 가능
  • TC4: WebDAV 캘린더 URL 접속 → 캘린더 항목 조회 가능(설정한 경우)

결정 흐름(간단)

다음 Mermaid 다이어그램은 WebDAV를 활성화할지 결정하는 흐름입니다:

flowchart TD
  A[WebDAV/CalDAV 필요?] -->|예| B[OpenERP webdav 섹션 활성화]
  A -->|아니오| C[WebDAV 설정 제거]
  B --> D[Apache에서 /webdav/ 프록시 설정 추가]
  C --> D
  D --> E[전체 테스트 및 검증]

마이그레이션/버전 참고

  • 이 가이드는 Ubuntu 10.04과 해당 시절 OpenERP 구조(서버/웹 분리)를 기반으로 합니다. 최신 배포판과 OpenERP(또는 Odoo) 버전에서는 패키지명, 설정 경로, 기본 포트, 모듈 이름 등이 달라질 수 있습니다.
  • 최신 Ubuntu/데비안에서는 systemd 사용, Apache 구성 위치 및 모듈 동작이 달라질 수 있으니 배포판 문서를 참고하세요.

요약

  • Apache를 리버스 프록시로 사용해 SSL 종료를 구성하면 OpenERP의 여러 인터페이스를 HTTPS로 안전하게 노출할 수 있습니다.
  • 자체 서명 인증서는 내부/테스트용으로 적합하지만 운영 환경에서는 공인된 CA 인증서를 권장합니다.
  • OpenERP 및 웹 클라이언트를 로컬 바인딩하여 비암호화 포트를 외부에서 차단해야 합니다.

중요: 이 문서는 구현 예시를 제공하며, 실제 운영 환경에서는 추가적인 보안 검토(예: TLS 설정, HSTS, 인증서 관리 등)가 필요합니다.

저는 이 방법이 도움이 되었으면 합니다. 개선 의견이나 질문이 있으면 알려 주세요.

공유하기: X/Twitter Facebook LinkedIn Telegram
저자
편집

유사한 자료

OpenERP 자동 시작 및 웹 클라이언트 설정
서버 관리

OpenERP 자동 시작 및 웹 클라이언트 설정

YouTube 싫어요 수 확인 방법 — 브라우저와 Android 가이드
튜토리얼

YouTube 싫어요 수 확인 방법 — 브라우저와 Android 가이드

허리케인·홍수 등 자연재해로부터 데이터 보호 가이드
데이터 보호

허리케인·홍수 등 자연재해로부터 데이터 보호 가이드

BYOVD 취약 드라이버 공격으로 Windows 보호하기
사이버 보안

BYOVD 취약 드라이버 공격으로 Windows 보호하기

OpenERP에 Apache로 SSL 설정하기 (Ubuntu 10.04)
서버관리

OpenERP에 Apache로 SSL 설정하기 (Ubuntu 10.04)

최고의 VPN 제공업체 선택 가이드
보안

최고의 VPN 제공업체 선택 가이드