Varios dominios bajo un solo certificado SSL con NGINX

Enlace como configurar un certificado SSL en tomcat Link:Generar y Configurar un certificado SSL tomcat

 

Ciando se tiene varios dominios que apuntan al mismo servidor en este caso Tomcat con las mismas DNS hay varias opciones de configuración

1. Comprar un certificado por cada dominio independiente

2, Compro un certificado con capacidad de configurar sub-dominios

3. configuro un servidor web de código abierto que también puede servir como proxy inverso. Además de ser usado para alojar sitios web, es también una de las soluciones de proxy inverso y balanceo de carga más utilizadas. Como Apache o Nginx. En este caso Nginx, aunque no mucha experiencia en Apache tengo entendido que el procedimiento es análogo.

1. Verificar que el certificado de los pasos anteriores este funcionado ( muestre el candado sin ninguna alerta)

2. Verificar que los dominios este operativos antes de iniciar cualquier procedimiento, porque este , no es para habilitar dominios sino para colocarlos bajo un solo certificado

2. Verificar que el conector Tomcat de http este escuchando en un puerto diferente al 80 que es el que usa Nginx por defecto, Tomcat usualmente lo hace por el 8080 o sea no debe haber problema

2. Instalar Nginx .

a. Servidor centos 7 → sudo yum install nginx

b. Servidor AWS EC2 , usualmente viene pre-instalado, sino cuando se le da sudo sudo yum install nginx, enviá un mensaje indicado la forma correcta de hacerlo, que depende de la versión que se tenga de AWS EC2.

4. Nginx usualmente queda instalado en la carpeta /etc/nginx , en esa misma capeta crear las carpetas

a. sudo mkdir /etc/nginx/sites-available

Aquí almacenaremos las configuraciones a los dominios que vamos a usar

b. sudo mkdir /etc/nginx/sites-enables

Aquí almacenamos los link que apuntas a la carpeta sites-avalible

5. En esa misma carpeta es decir /etc/nginx configuramos el sistema para que exponga los sitios que vamos a crear en sites-avalable

sudo emacs nginx.conf

buscar estas lineas

# Load modular configuration files from the /etc/nginx/conf.d directory.

# See http://nginx.org/en/docs/ngx_core_module.html#include

# for more information.

include /etc/nginx/conf.d/*.conf;

insertar esta debajo

include /etc/nginx/sites-enabled/*.conf;

6. Vamos a sites avalaible y creamos los archivos de configuración apuntando al Tomcat, aunque no es obligatorios es una buena practica nombrarlos de acuerdo al sitio que vamos a exponer.

Por simple orden configuramos el dominio principal de nuestros sistemas en en este ejercicio lo vamos a llamar

www.mydominio.com.co

el segundo

www.tudominio.net

Desde luego pueden haber tantos como se quiere siempre y cuando todos tengas las mismas DNS o apunten al mismo servidor Tomcat qu es el que tiene el único certificado SSL que tenemos.

Este tiene importancia porque ambas configuraciones van apuntar al principal , desde luego tenemos que verificar que ambos esten habilitados porque aqui no estamos dando de alta a ellos, sino simplemente colocandolos bajo la protección de un solo certificado SSL.

Creamos la primera configuracion del primero

sudo emacs /etc/nginx/sites-avalables/www.mydominio.com.co

server {

listen 80;

server_name mydominio.com.co www.mydominio.com.co *.mydominio.com.co www.myDomiunio.com.*;

access_log /var/log/nginx/tomcat-access.log;

error_log /var/log/nginx/tomcat-error.log;

location / {

proxy_set_header X-Forwarded-Host $host;

proxy_set_header X-Forwarded-Server $host;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass http://myDominio.com.co:8080/;

}

}


sudo emacs /etc/nginx/sites-avalables/www.tudominio.net

server {

listen 80;

server_name tudominio.com www.tudominio.net *.tudominio.net www.tudomiunio.net*;

access_log /var/log/nginx/tomcat-access.log;

error_log /var/log/nginx/tomcat-error.log;

location / {

proxy_set_header X-Forwarded-Host $host;

proxy_set_header X-Forwarded-Server $host;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass http://myDominio.com.co:8080/;

}

}

Notar la linea proxy_pass http://mydominio.com.co:8080/; esta linea es la que relaciona los diferentes dominios entre si y ademas permite compartir el certificado SSL

Los 2 dominios solo difieren entre si en la terminacion en este caso, pero podrian ser diferentes nombre y terminaciones por ejemplo mydomio.com , tuDominio.net, tuDominio.org o cualquier otro la única condicion es que tengan las mismas DNS

6. Ahora creamos en /etc/sites-enables los link de estas configuraciones para que nginx las pueda publicar

a. sudo ln -s /etc/nginx/sites-available/www.mydominio.com.co.conf /etc/nginx/sites-enabled/

b. sudo ln -s /etc/nginx/sites-available/www.tudominio.netc.conf /etc/nginx/sites-enabled/

7. Ahora queda iniciar nginx



sudo systemctl restart nginx


Verificar con cualquier navegador que los dominios están funcionado pero demás que son redirigidos al dominio principal que tiene la protección de certificado SSL

Nota: Si queremos que Nginx re inicie automáticamente cuando se inicie el servidor:

$ sudo systemctl enable nginx

Comentarios

Entradas populares