Tux y OpenERP

Tux y OpenERP
Para obtener información sobre como implantar OpenERP en tu empresa --- contactar con informaticartica@gmail.com ---

martes, 28 de febrero de 2012

Instalación de OpenERP 6.1 en Ubuntu Server


La nueva versión de OpenERP 6.1 anuncia una gran cantidad de mejoras incrementales en el producto, además de una completa re-escritura de la interfaz web, que es una mejora enorme y más integrada en el producto que en el caso de su predecesor.

Antes de continuar, debo mencionar que se puede instalar la versión 6.1 en Ubuntu simplemente con un paquete “.deb”. Pero eso no me da el suficiente control sobre donde se instalan las cosas y se restringe la flexibilidad de modificar y personalizar el proceso de instalación por lo cual yo prefiero hacerlo de una forma más manual … (Hay que decir sin embargo que este proceso de instalación solo conlleva 10 -15 minutos una vez montado el equipo anfitrión)

Así que, sin más preámbulos vamos allá:


Paso 1. Preparando el servidor

Podemos realizar una instalación mínima del servidor (se puede instalar el openssh-server durante el proceso de instalación o instalarlo posteriormente, depende de las preferencias de cada uno).
Después de que el servidor sea reiniciado por primera vez instalamos el paquete openssh-server (por lo cual podemos conectarnos remotamente) y el paquete denyhosts para añadir protección ante ataques de fuerza bruta. Hay otra serie de aplicaciones disponibles destinadas a la protección : No digo que este sea el mejor, pero funciona y es fácil de configurar y administrar. Si no lo hemos hecho ya, es interesante la creación de claves de seguridad para evitar el tener que estar introduciendo contraseñas. Esto también ayuda a evitar ataques de fuerza bruta. [NOTA: Esto no es manual de seguridad para su servidor …].
sudo apt-get install openssh-server denyhosts
Ahora asegurémonos de que disponemos de las últimas actualizaciones del sistema:
sudo apt-get update
sudo apt-get dist-upgrade
Aunque no es esencial hacerlo siempre, en este punto es una buena idea reiniciar nuestro servidor y asegurarnos de que todo inicia correctamente y podemos acceder vía ssh.
Ahora estamos preparados para llevar acabo la instalación de OpenERP 6.1.
 

Paso 2. Creando el usuario que será propietario de OpenERP y llevará a cabo la ejecución de la aplicación

sudo adduser --system --home=/opt/openerp --group openerp
Se trata de un usuario del “sistema”. Es creado para ser propietario de la aplicación y hacerla correr, se presupone que no va a ser un tipo de usuario de una persona física con una sesión de login, etc. En Ubuntu a un usuario del sistema le es asignado un UID por debajo de 1000, no dispone de shell (es actualmente /bin/false) y su login se encuentra deshabilitado. Debemos tener en cuenta que he especificado como “home” el directorio /opt/openerp, y es ahí donde se alojará el código del servidor de OpenERP y se crea automáticamente mediante la ejecución del comando anterior. La ubicación del código del servidor es elección de cada uno, pero tengamos en cuenta que si elegimos otra ubicación hemos de modificar algunas de las instrucciones que se llevan a cabo más adelante en este manual.
Una de las preguntas que me realizaron varias veces en el anterior manual de la versión 6.0 fue como hacer correr la aplicación desde la línea de comandos si éste no dispone de shell. Esto se puede llevar a cabo de una manera muy sencilla:
sudo su - openerp -s /bin/bash
Mediante este comando se logueará en la terminal actual el usuario openerp con privilegios de Superadministrador (el “-” entre su y openerp es correcto) y usará la shell /bin/bash. Tras correr este comando nos encontraremos en el directorio /opt/openerp.
Después de realizar las tareas necesarias podemos salir de la sesión tecleando exit.


Paso 3. Instando y configurando el servidor de bases de datos PostgreSQL

sudo apt-get install postgresql
Configuramos el usuario postgres para OpenERP:
Nos logueamos como usuario postgres para disponer de los privilegios necesarios en postgresql.
sudo su - postgres
Ahora creamos un usuario de bases de datos. Mediante este usuario OpenERP podrá conectar con PostgreSQL y dispondrá de privilegios para crear y borrar bases de datos. Debemos recordar la contraseña que elijamos para nuestro usuario ya que será necesaria más adelante.
createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt openerp
Enter password for new role: ********
Enter it again: ********
Finalmente saldremos de la sesión del usuario postgres mediante el siguiente comando:
exit


Paso 4. Instalando en el servidor las librerías python necesarias reporting. Have added python-simplejson to the package list.

sudo apt-get install python-dateutil python-feedparser python-gdata \
python-ldap python-libxslt1 python-lxml python-mako python-openid python-psycopg2 \
python-pybabel python-pychart python-pydot python-pyparsing python-reportlab
python-simplejson python-tz python-vatnumber python-vobject python-webdav \
python-werkzeug python-xlwt python-yaml python-zsi
Debido a mi experiencia puedo decir que en Ubuntu 10.04 el paquete python-werkzeug es demasiado antiguo y esto puede desembocar en que el servidor no se inicie correctamente. Si estamos relizando la instalación en una versión posterior de Ubuntu posiblemente esté todo OK, pero en el caso contrario podemos realizar lo siguiente.
He visto necesario instalar una versión más reciente de Werkzeug usando la librería PIP para gestión de paquetes python. La herramienta PIP puede ser instalado de la siguiente forma:
sudo apt-get install python-pip
Desinstalamos la versión de Werkzeug suministrada por Ubuntu:
sudo apt-get remove python-werkzeug
Instalamos la versión más reciente:
sudo pip install werkzeug
Una vez realizado esto tenemos satisfechas todas las dependencias para OpenERP 6.1 , incluso las necesarias para la nueva interfaz web.

Paso 5. Instalando el servidor de OpenERP

Yo tiendo a usar el comando wget para este tipo de cosas y descargar archivos a mi directorio home.
Asegurémonos de que disponemos de la última versión de la aplicación. En el momento de la realización de este artículo la versión es la 6.1-1, cogemos los enlaces de descarga de su pagína de descargas.
Para continuar con la instalación nos posicionamos en el directorio /opt/openerp/ y extraemos el archivo tar.gz allí.
cd /opt/openerp
sudo tar xvf ~/openerp-6.1-1.tar.gz
Lo siguiente es cambiar el propietario de todos los archivos poniendo a openerp como usuario y grupo.
sudo chown -R openerp: *
Y finalmente, lo que hecho es copiar el directorio a otro con un nombre más simple para que no sea necesario estar editando constantemente los scripts de arranque y los archivos de configuración (haciendo uso de una gran imaginación lo he llamado server). Comencé usando enlaces simbólicos, pero me encontré con que al actualizar tiene más sentido para mí mantener sólo una copia de los archivos en un mismo lugar y sobreescribir los cambios. De este modo podemos mantener todo lo necesario como módulos, informes, etc... en el lugar correcto.
sudo cp -a openerp-6.1-1 server
Por ejemplo, pronto tendremos la versión de OpenERP 6.1-2, podemos extraer los archivos en /opt/openerp/ como hemos realizado arriba. Podemos realizar cualquier prueba que necesitemos, luego repetimos el comando de copia para sobreescribir los modulos necesarios, informes, etc... Una vez satisfecha la actualización si todo es estable podemos proceder al borrado de los antiguos directorios de la versión 6.1-1.
El servidor de OpenERP ha sido instalado. Los últimos pasos que nos quedan para que el sistema esté configurado al 100% son crear un archivo de configuración y un script de arranque para que OpenERP incie y paré el servicio junto con el sistema operativo.

Paso 6. Configurando OpenERP

El archivo de configuración por defecto del servidor (en /opt/openerp/server/install/) con unos pequeños cambios funciona correctamente, así que simplemente vamos a copiar el archivo donde sea necesario y cambiar el propietario y los permisos:
sudo cp /opt/openerp/server/install/openerp-server.conf /etc/
sudo chown openerp: /etc/openerp-server.conf
sudo chmod 640 /etc/openerp-server.conf
Los comandos anteriores hacen que el archivo sea propiedad del usuario openerp y escribible por él y solamente de lectura para openerp y root.
Para iniciar el servidor de OpenERP, debemos hacer unos cambios en el archivo de configuración. Si vamos a la parte de arriba del archivo cambiamos la linea db_password = False por la misma contraseña que hemos creado en el paso 3. Cada cual puede usar el editor de textos que prefiera, yo tiendo a usar nano por ejemplo.
sudo nano /etc/openerp-server.conf
Otra linea que también es recomendable cambiar dentro del archivo de configuración es la que hace referencia al archivo log :
logfile = /var/log/openerp/openerp-server.log
Una vez terminamos de editar el archivo y lo guardamos, podemos inciar el servidor de OpenERP para confirmar que todo funciona correctamente.
sudo su - openerp -s /bin/bash
/opt/openerp/server/openerp-server
Si vemos unas cuantas líneas de log en las que dice que OpenERP está corriendo y esperando conexiones está todo listo. Podemos proceder a parar el servidor con CTRL + C y teclear exit para salir de la sesión.
Si hay errores, tendremos que volver atrás y comprobar donde puede estar el problema.


Paso 7. Instalando el script de inicio

Como último paso necesitamos instalar un script de inicio el cual será usado para que OpenERP se inicie con el servidor y se apague junto a él corriendo la aplicación además con el usuario correcto. Hay un script que podemos usar en /opt/openerp/server/install/openerp-server.init pero este script necesitará unas pequeñas modificaciones para trabajar de la manera que hemos descrito anteriormente. Aquí hay un enlace de como lo he modificado para la 6.1-1.
Al igual que hemos hecho con el archivo de configuración hemos de copiar y pegar el contenido de este script en un archivo en /etc/init.d/ y llamarlo openerp-server. Además de colocarlo en el lugar correcto tenemos que hacerlo ejecutable y poner de propietario a root:
sudo chmod 755 /etc/init.d/openerp-server
sudo chown root: /etc/init.d/openerp-server
En el archivo de configuración hay una entrada para el archivo log del servidor. Necesitamos crear el directorio que hemos designado si no existe y hacerlo escribible para el usuario openerp:
sudo mkdir /var/log/openerp
sudo chown openerp:root /var/log/openerp

Paso 8. Probando el servidor

Para iniciar el servidor de openerp escribimos en una terminal:
sudo /etc/init.d/openerp-server start
Ahora deberiamos ver la salida del log y ver que el servidor ha iniciado correctamente.
less /var/log/openerp/openerp-server.log
Si experimentamos algún problema al iniciar el servidor debemos volver atrás y realizar las comprobaciones pertinentes. Realmente no hay nada que nos indique la razón de porqué no inicia ...
Si el archivo log parece OK, pondremos en nuestro navegador preferido el dominio o la IP de nuestro servidor de OpenERP (o localhost si nos encontramos en la misma máquina) y usaremos el puerto 8069. La URL quedaría algo como esto:
http://IP_or_domain.com:8069
Y deberiamos ver una ventana como esta:
OpenERP 6.1 Home Screen
Ventana de Login de OpenERP 6.1

Lo que sí recomiendo llegados a este punto es cambiar el password de super admin por uno que sea adecuado y seguro (Hacemos click en “Manage Databases” , un link que hay debajo del recuadro de login). Por defecto este password es “admin” y conociendo este dato un usuario puede crear, realizar backups, restores e incluso... ¡ borrar bases de datos! Este password está como texto plano en el archivo de configuración en /etc/openerp-server.conf; Cuando cambiemos y guardemos el nuevo password el archivo /etc/openerp-server.conf será reescrito y pasará a tener más opciones..
Ahora es momento de comprobar que el servidor de OpenERP también se detiene correctamente:
sudo /etc/init.d/openerp-server stop
Asegurémonos de que se ha parado comprobando el archivo log o mirando la lista de procesos python activos en el servidor.

Paso 9. Automatizando el inicio y apagado de OpenERP

Si todo funciona correctamente, el último paso que debemos dar es crear el script que hace que OpenERP se inicie y se pare junto a Ubuntu Server. Para realizar esto escribimos en la terminal:
sudo update-rc.d openerp-server defaults
Ahora podemos reiniciar el servidor. OpenERP debería estar en funcionamiento tras iniciar sesión en el servidor.
Si escribimos en la terminal: ps aux | grep openerp deberiamos ver algo parecido a:
openerp 1491 0.1 10.6 207132 53596 ? Sl 22:23 0:02 python /opt/openerp/server/openerp-server -c /etc/openerp-server.conf
Si aparece algo así en nuestra terminal el servidor está corriendo. Y por supuesto también podemos comprobar el archivo del log o conectarnos desde el navegador.
¡Esto es todo!
 Agradecer nuevamente a Alan su excelente trabajo y aquí teneis el artículo original de su blog.

http://www.theopensourcerer.com/2012/02/22/how-to-install-openerp-6-1-on-ubuntu-10-04-lts/
 
Juani

PD: El artículo ha sido traducido íntegramente manteniendo todos los comentarios originales de Alan.

Crear entorno de OpenERP 6.1

Al ver que todavía no hay en Launchpad un script bzr_set.py para la nueva release de OpenERP 6.1, me he tomado la libertad de crearme uno propio con lo que tenemos disponible de momento.

Para los que no conozcais el script, ejecutándolo podemos crear en ese directorio toda la estructura de OpenERP, con lo que tendriamos una instancia de OpenERP completa. Lo he modificado de tal manera que además de bajarnos la 6.1 también nos baja la localización española haciendo también todos los enlaces simbólicos. Para los que desarrolleis os facilitará mucho el trabajo.

Ya que no puedo adjuntar archivos en este blog os paso el código tal cual:

#!/usr/bin/python



# Modificado por Juani Ubeda para uso temporal #(http://www.informaticartica.blogspot.com)

__all__ = ['update_openerp']

import os
import shutil
import glob
import bzrlib.builtins
from bzrlib.plugins import launchpad
from bzrlib.branch import Branch
from bzrlib.errors import NotBranchError
from bzrlib.revisionspec import RevisionSpec

def run_cmd(cmdname, *args, **kwargs):
    f = getattr(bzrlib.builtins, 'cmd_' + cmdname)()
    if hasattr(f, '_setup_outf'):
        # old versions of bzr does not have this function  
        # this function must be called to avoid a exception in bzr code
        f._setup_outf()
    return f.run(*args, **kwargs)

_VERSIONS = ('4.2', '5.0', '6.0', '6.1','trunk')
_DEFAULT_VERSION = '6.1'
_EXTRA_ADDONS_MAP = {
    '4.2': '4.2-extra-addons',
    '5.0': 'stable_5.0-extra-addons',
    '6.0': 'extra-6.0',
    '6.1': 'trunk-extra-addons',
}

def update_openerp(dest_dir, version=_DEFAULT_VERSION, lplogin=None, export=False, revision=None, verbose=False):
    """
        if lplogin == None -> make a branch instead of a checkout
        if export == True -> bzr export
        if revision is provided, get the branches at this revision
            more information with:
                $> bzr help revisionspec
    """
    def log(msg):
        if verbose:
            print msg

    if version not in _VERSIONS:
        raise Exception('Unknown version')
    dest_dir = dest_dir or '.'

    branch = lplogin is None
    if branch:
        BASEURL = 'lp:'
    else:
        BASEURL = 'bzr+ssh://%s@bazaar.launchpad.net/' % (lplogin,)

    # map branch URLs according to version
    extraversion = _EXTRA_ADDONS_MAP[version]
    communityversion = 'trunk'
    webversion = version

    bzr_repository = {
        'server': (BASEURL + '~openerp/openobject-server/' + version, True),
        'client': (BASEURL + '~openerp/openobject-client/' + version, True),
        'addons': (BASEURL + '~openerp/openobject-addons/' + version, True),
        'addons-extra': (BASEURL + '~openerp-commiter/openobject-addons/' + extraversion, False),
        'addons-community': (BASEURL + '~openerp-community/openobject-addons/' + communityversion + '-addons-community', False),
        'web': (BASEURL + '~openerp/openerp-web/' + webversion, True),
    'spanish': (BASEURL + '~openerp-spain-team/openerp-spain/' + version, True),
    }

    bzr_links = {
        'addons/*': 'server/openerp/addons/',
    'addons-extra/*': 'server/openerp/addons/',
    'addons-community/*': 'server/openerp/addons/',
    'spanish': 'server/openerp/addons/',
    }

    if branch:
        cmd = {'new': lambda u, l, r: run_cmd('branch', u, l, revision=r),
               'update': lambda u, l, r: run_cmd('pull', u, directory=l, overwrite=True, revision=r),
        }
    else:
        cmd = {'new': lambda u, l, r: run_cmd('checkout', u, l, lightweight=True, revision=r),
               'update': lambda u, l, r: run_cmd('update', l), # no revision option :(
        }
    cmd['export'] = lambda u, l, r: run_cmd('export', l, u, revision=r)

    msg = "%(status)s %(type)s of %(from)s into %(to)s"

    if not os.path.exists(dest_dir):
        os.makedirs(dest_dir)

    for local, (bzrdir, has_tags) in bzr_repository.items():
        local = os.path.join(dest_dir, local)
        typ = ['checkout', 'branch'][branch]
        if export:
            if os.path.exists(local):
                shutil.rmtree(local)
            status = 'export'
            typ = 'sources'
        else:
            try:
                b = Branch.open(local)
                # FIXME check that the current workingDirectory is a branch or a checkout
                status = 'update'
            except NotBranchError:
                status = 'new'
       
        frm = bzrdir
        rev = None
        if revision and (not revision.startswith('tag:') or has_tags):
            frm = '%s (%s)' % (bzrdir, revision)
            rev = RevisionSpec.from_string(revision)

        log(msg % {'status': status, 'type': typ, 'to': local, 'from': frm})
               
        cmd[status](bzrdir, local, rev and [rev] or None)

    # Doing symlinks
    log('(Re)Computing Symbolic links...')
    for src2,dest2 in bzr_links.items():
        src2 = os.path.join(dest_dir, src2)
        dest2 = os.path.join(dest_dir, dest2)
        for src in glob.glob(src2):
            dest = os.path.join(dest2, os.path.basename(src))
            if not os.path.isdir(dest):
                os.symlink(os.path.realpath(src), dest)

    log('='*79)
    log('Sources of OpenERP have been installed. If you develop new features,')
    log('you can get more information on how to contribute to the project here:')
    log('\thttp://test.openobject.com')
    log('='*79)

#
# Testing bzr send
#

if __name__ == '__main__':
    import optparse
    description = """Tool that allows you to get the last sources of openerp on launchpad.
It downloads all branches, and create symlinks for addons in the server. By
default, it loads the latest stable version.
"""
    parser = optparse.OptionParser(description=description,
                                   usage="%prog [options] [directory]")
    parser.add_option('--checkout', dest='lplogin', help="Specify the launchpad login to make a checkout instead of a branch")
    parser.add_option('--export', dest='export', help='Make an export of the sources, instead of branches', action='store_true', default=False)
    parser.add_option('-v', dest="version", default=_DEFAULT_VERSION, type="choice", choices=_VERSIONS, help="Specify the version to take (trunk, 4.2, 5.0, 6.0)")
    parser.add_option('-r', dest="revision", default=None, help="Specify the revision to take. (useful to take a specific TAG or to specify a DATE)")
    parser.add_option('-q', '--quiet', dest='quiet', help='Suppress the output', action='store_true', default=False)
    opt, args = parser.parse_args()
    dest_dir = args and args[0] or '.'
    update_openerp(dest_dir, opt.version, opt.lplogin, opt.export, opt.revision, not opt.quiet)

Espero que os sea de utilidad, el uso es simple:

- Copias este código en un archivo de texto y lo llamais por ejemplo bzr_set.py
- Lo copiais a un directorio donde querais tener la instancia de OpenERP 6.1
- Lo ejecutais con la orden : python bzr_set.py
- Esperais un ratito a que termine. (Os dará una serie de Warnings, si quereis evitarlos descargad de Launchpad el script y la carpeta y archivo ocultos que lo acompañan y reemplazais el script por el mío)

Para arrancar openerp seguid los siguientes pasos:

- entrar en la carpeta server : cd server
- arrancar el servidor : ./openerp-server --addons-path=openerp/addons/,../web/addons --load=web
- escribir en el navegador : http://localhost:8069
- a disfrutar ........ ;)

Cada vez que lo ejecuteis os actualizará los directorios con lo último de cada rama.

Saludos ,
Juani

sábado, 11 de febrero de 2012

La nueva versión de OpenERP 6.1

Bueno, pues después de las primeras pruebas que he realizado con la nueva versión de OpenERP, he de deciros que me he llevado una grata sorpresa al ver la fluidez del cliente web frente a versiones anteriores.
Entre las cosas que me han llamado la atención destacaría el nuevo TPV y la sección de proyectos y tareas. Aunque no hay grandes cambios en torno a la usabilidad la forma en la que se nos muestran con colores está muy bién elaborado. El menú de Administración ahora es Settings y muestra muy pocos cambios de momento. El limpiado de cara que ha recibido la pantalla de login, la parte de gestión de bases de datos y el asistente de configuración de base de datos es excepcional y visualmente muy atractivo.
En breve os mostraré más cosas de esta nueva versión,... quedo pendiente de subir imágenes ya que una imagen vale más que mil palabras. Me da muy buenas vibraciones está nueva versión, en cuanto tengamos la localización española preparada os haré un pequeño tutorial de como realizar la instalación completa de OpenERP 6.1.

Saludos, Juani

martes, 7 de febrero de 2012

SSL en Servidor con OpenERP


INSTALACIÓN SSL EN OPENERP

1. Instalando Apache y los módulos requeridos

Instalar apache mediante el siguiente comando:
sudo apt-get install apache2
Ahora le diremos a apache que queremos usar unos módulos (mod_ssl, mod_proxy, mod_proxy_http, mod_headers and mod_rewrite [optional]) que no están activos por defecto:
sudo a2enmod ssl proxy_http headers rewrite
Lo siguiente que necesitamos es generar las claves y el certificado de SSL.

2. Creando el certificado y las claves

Vamos a crear los archivos en un directorio temporal para después moverlos a su lugar definitivo una vez se hayan generado correctamente (El primer “cd” es para asegurarnos que estamos dentro de nuestro home, dicho comando te devuelve siempre a la ruta de tu home):
cd
mkdir temp
cd temp
Tras esto generamos una nueva clave, nos pide una contraseña y la confirmación de dicha contraseña:
openssl genrsa -des3 -out server.pkey 1024
Realmente no nos interesa tener que introducir la contraseña cada vez que iniciamos el servidor por lo cual eliminamos la contraseña de la siguiente manera:
openssl rsa -in server.pkey -out server.key
Lo siguiente es crear una solicitud de firma que contendrá los datos que serán visibles en el certificado final:
openssl req -new -key server.key -out server.csr
Esto genera una serie de prompts como estos:
Introducir la información requerida:
You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter ‘.’, the field will be left blank.
—–
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) []:
Email Address []:
Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:The Client’s Company
Y finalmente nosotros firmamos nuestro propio certificado.
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Solamente tenemos 2 de los archivos en el directorio de trabajo, la clave y el certificado. Pero antes de poder trabajar con ellos tenemos que cambiar el propietario y los permisos en ambos archivos:
sudo chown openerp:root server.crt server.key
sudo chmod 640 server.crt server.key
Y (muy importante) ponerlos en lugar seguro:
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/
Ahora la clave y el certificado se encuentran guardados en lugar seguro, debemos decirle a Apache donde se encuentran:

3. Creando el archivo de configuración de Apache

Vamos a crear un nuevo archivo de configuración del “Virtual Host”
sudo nano /etc/apache2/sites-available/openerp-ssl
con el siguiente contenido:
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/ssl/openerp/server.crt
SSLCertificateKeyFile /etc/ssl/openerp/server.key
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyVia On
ProxyPass /webdav/ http://127.0.0.1:8069/webdav/
<Location /webdav/ >
ProxyPassReverse /webdav/
<Limit OPTIONS PROPFIND GET REPORT MKACTIVITY PROPPATCH PUT MOVE COPY DELETE LOCK UNLOCK>
Order Deny,Allow
Allow from all
Satisfy Any
</Limit>
</Location>
ProxyPass / http://127.0.0.1:8080/
<location / >
ProxyPassReverse /
</location>
RequestHeader set "X-Forwarded-Proto" "https"
# Fix IE problem (httpapache proxy dav error 408/409)
SetEnv proxy-nokeepalive 1
</VirtualHost>
Fijémonos que hay 2 configuraciones proxy. Una para /webdav/ and otra para /. Si no teneis intención de usar WebDAV o CalDAV os podeis saltar esta sección. Pero esencialmente, nosotros le decimos a Apache que el tráfico de WebDAV necesita usar el puerto XMLRPC en el servidor de OpenERP y el tráfico normal web debe usar el puerto 8080 que es que usa el cliente Web. El orden es sumamente importante. Si / viene antes que /webdav/ podría no funcionar.
Tras esto podemos activar la nueva configuración de sitio.
sudo a2ensite openerp-ssl
Opcionalmente, podemos usar mod_rewrite para redireccionar cualquier tráfico normal (no encriptado) del navegador al puerto SSL (443).
Para conseguir hacer esto, añade las siguientes líneas (fuera de <directory> ) al archivo /etc/apache2/sites-available/default
RewriteEngine on
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R]

4. Cambios en los archivos de configuración del servidor de OpenERP y el OpenERP Web

El siguiente paso es reconfigurar OpenERP Server y OpenERP Web para que los servicios no cifrados no sean accesibles desde el exterior.
En /etc/openerp-server.conf los 2 servicios no encriptados estarán a la escucha solo en localhost, es decir no se acepatarán conexiones externas , serán aceptadas vía Apache. Por lo tanto debemos indicar el servicio de XMLRPC-SSL para que sepa donde encontrar el certicado y la clave necesarios.
Realicemos los siguientes cambios:
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
Si queremos disponer de acceso WebDAV/CalDAV añadir lo siguiente al final del archivo de configuración:
[webdav]
enable = True
vdir = webdav
Tras esto, realizaremos una serie de cambios en el archivo de configuración del cliente web en /etc/openerp-web.conf para que acepte tráfico solamente desde localhost:
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
Esto es todo.

5. Probemos...

Reiniciar los servicios para cargar las nuevas configuraciones
sudo service openerp-server restart
sudo service openerp-web restart
sudo service apache2 restart
No debería ser capaz de conectar con el cliente Web en el puerto 8080 y el cliente GTK no debería conectar ya sea mediante el NetRPC (8070) o bien el XMLRPC (8069) . Para el acceso web sólo tenemos que entrar con https://tu-ip-o-dominio y en el cliente GTK tendremos que usar el puerto 8071 y elegir el protocolo XMLRPC (protocolo seguro).


Para el acceso por URL al CalDAV debemos escribir algo como esto en nuestros navegadores:
https://tu-ip-o-dominio/webdav/DB_NAME/calendars/users/USERNAME/c/CALENDAR_NAME
Y hasta aquí puedo leer....
No quisiera terminar este artículo del blog sin agradecer sus aportes a Alan, os dejo el enlace original y aceptaré cualquier corrección en cuanto a la traducción del texto.
http://www.theopensourcerer.com/2011/04/21/how-to-install-openerp-6-on-ubuntu-10-04-lts-server-part-2-ssl/
Juani