INSTALACIÓN SSL EN OPENERP
1. Instalando Apache y los módulos requeridos
Instalar apache mediante el siguiente comando:sudo apt-get install apache2
sudo a2enmod ssl proxy_http headers rewrite
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
openssl genrsa -des3 -out server.pkey 1024
openssl rsa -in server.pkey -out server.key
openssl req -new -key server.key -out server.csr
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’ attributesY finalmente nosotros firmamos nuestro propio certificado.
to be sent with your certificate request
A challenge password []:
An optional company name []:The Client’s Company
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/
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
<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
Para conseguir hacer esto, añade las siguientes líneas (fuera de
<directory>
) al archivo /etc/apache2/sites-available/default
RewriteEngine onRewriteCond %{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 = TrueSi queremos disponer de acceso WebDAV/CalDAV añadir lo siguiente al final del archivo de configuración:
xmlrpcs_interface =
xmlrpcs_port = 8071
secure_pkey_file = /etc/ssl/openerp/server.key
secure_cert_file = /etc/ssl/openerp/server.crt
[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:
enable = True
vdir = webdav
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 checksEsto es todo.
tools.csrf.on = False
5. Probemos...
Reiniciar los servicios para cargar las nuevas configuracionessudo 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).
https://
tu-ip
-
o-dominio
/webdav/DB_NAME/calendars/users/USERNAME/c/CALENDAR_NAME
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
Una nota al firmar el certificado en el ejemplo le pone una validez de 365 días. Hay que acordarse que después de 1 año, el certificado dará error ¿no?, a no ser que lo renueves.
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminar