martes, 10 de mayo de 2016

Como configurar Nginx como Reverse Proxy para Odoo 9

En este tutorial estaremos aprendiendo a instalar Nginx en Ubuntu 14.04

También aprenderemos a:
Configurar Nginx para escuchar en el puerto 80 y 443
Configurar Nginx para hacer uso de certificados y utilizar cifrado SSL
Configurar Nginx para publicar más de un sitio web y con diferentes certificados SSL

Una instalación estandar de Odoo publica el sitio web de odoo en el puerto 8069, sin embargo si pensamos utilizar el CMS que viene integrado para crear la página web de nuestra compañia Ej. www.micompañia.com.bo vamos a necesitar que el sitio web trabaje en el puerto 80 (http) y puerto 443 (https), si queremos proteger la información es inaceptable no tener cifrado SSL.

Requisitos:
1.- Tener instalado Ubuntu 14.04
ver: http://jp-kb.blogspot.com/2016/05/como-instalar-linux-ubuntu-1404-lts-en.html
2.- Tener instalado Odoo 9
ver: http://jp-kb.blogspot.com/2016/05/como-instalar-odoo-version-9-en-espanol.html
3.- Contar con un certificado emitido por una entidad de certificación pública o privada.
ver: http://jp-kb.blogspot.com/2016/05/como-conseguir-certificados-ssl.html

Paso 1.- Descargar el script que automatiza la instalación y configuración de Nginx.
Este script está documentado y pueden abrirlo en cualquier editor de texto para ver lo que hace.

1.1.- Iniciamos sesión en Ubuntu 14.04
1.2.- Ejecutamos el siguiente comando:

sudo wget https://raw.githubusercontent.com/jpvs1978/Instalar_odoo/master/Instalar_nginx.sh    

1.3.- Copiamos los certificados a la carpeta HOME del usuario actual con los siguientes nombres: server.key y server.crt
1.4.- Ejecutamos el siguiente comando para cambiar los permisos del archivo y hacerlo ejecutable.

sudo chmod +x Instalar_nginx.sh 

1.5.- Ejecutamos el script.

./Instalar_nginx.sh

Información adicional.
* Si no tiene un certificado provisto por una entidad de certificación pública puede generar uno autofirmado con los comandos de abajo.

openssl genrsa -des3 -out server.pkey 2048
openssl rsa -in server.pkey -out server.key
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

El primer comando crea un archivo server.pkey y nos solicita una clave, podemos escribir cualquier cosa.
El segundo comando elimina dicha clave del archivo porque de lo contrario tendríamos que escribirla cada vez que reiniciamos Nginx.
El tercer comando creamos un archivo que contiene la solicitud del certificado y debemos proveer la información que nos va solicitando, de todas las preguntas que nos va haciendo solo es importante responder la siguiente:
Common Name (e.g. server FQDN or YOUR name) []:www.midominio.com.bo
El cuarto comando crea el certificado autofirmado.
Finalmente debemos guardar en un lugar seguro el archivo server.key y el archivo server.crt
El archivo server.key contiene la clave privada y no debe ser compartida con nadie.
El archivo server.crt contiene el certificado público y puede ser compartido y será visto por todas las personas que ingresen a nuestro sitio web.

* Si se olvidó de proveer los certificados, Nginx no va iniciar correctamente.
Para solucionar este problema es necesario copiar los certificados a las siguientes ubicaciones.
El certificado público debe ir en /etc/ssl/certs/server.crt
La clave privada debe ir en /etc/ssl/certs/server.crt

Para poder administrar el servidor Ubuntu le recomendamos el siguiente cliente SSH "MobaXterm Personal Edition"
Abajo puede ver los comandos para copiar los archivos a las ubicaciones correctas.

sudo cp server.crt /etc/ssl/certs/server.crt
sudo cp server.key /etc/ssl/private/server.key

* Odoo 9 aún puede ser utilizado en el puerto 8069 debido a que no hemos modificado la el archivo de configuración.
Si queremos que todo el tráfico entrante a nuestro servidor Odoo sea redireccionado a https debemos realizar las siguientes modificaciones al archivo de configuración.

sudo nano /etc/odoo-server.conf

Agregar las siguientes líneas al final del archivo de configuración para que Odoo solo escuche conexiones locales.
xmlrpc_interface = 127.0.0.1
netrpc_interface = 127.0.0.1

Luego reiniciar el servicio de Odoo
sudo service odoo-server restart -c /etc/odoo-server.conf




No hay comentarios:

Publicar un comentario