Administración de HTTPS
En WOCU-Monitoring hemos habilitado HTTPS tanto para el frontend como para la comunicación entre los backends.
A continuación pasamos a detallar las operativas a tener en cuenta.
Certificados
Se han creado por defecto tres certificados autofirmados (por WOCU-monitoring):
Certified Authority
Llave privada:
wocuCA.key
Certificado:
wocuCA.pem
Aggregator
Llave privada:
wocu.key
Certificado:
wocu.pem
Import-tool
Llave privada:
wocu-it.key
Certificado:
wocu-it.pem
Los anteriores certificados se almancenan (para todos los flavours del
sistema) en: [/opt/wocu/embedded/ssl/certs]
.
Dominios de WOCU-monitoring
Por defecto, WOCU-monitoring se envía con dominios distintos para el Aggregator e Import-tool.
Para el Aggregator el dominio es wocu (acceso
https://wocu
)Para el Import-tool el dominio es wocu-it (acceso
https://wocu-it
)
DNS
Será necesario que los dominios wocu
y wocu-it
, sean capaces de
traducirlo a la IP de la máquina con WOCU-monitoring ya instalado.
Dado que son certificados autofirmados, se deberán añadir estos
dominios a un DNS, sin embargo, usaremos el fichero de /etc/hosts
del sistema.
Se añadirán las siguientes entradas al fichero /etc/hosts
:
AIO (incorpora Agregador + Import-tool)
WOCU_AIO_IP wocu
Atención
Poner en un AIO (Agregador + Import-tool) con el mismo DNS
se debe a que Nginx expondrá solo un puerto y dominio, por lo que el
Import-Tool estará sirviéndose en el mismo puerto que el
Agregador y será el PROXY PASS
del Nginx quién haga la diferencia
de acceso.
Agregador
WOCU_AGGREGATOR_IP wocu
Import-tool
WOCU_IMPORT-TOOL_IP wocu-it
Configuración del Agregador (GUI)
La siguiente configuración es para un flavour AIO de WOCU-Monitoring en el Import-tool.
La siguiente configuración es para un flavour monitoring de WOCU-Monitoring. En esta casuística no está el Agregador incluido.
Pautas y recomendaciones para la configuración de parámetros:
Import tool host: debe coincidir con el nombre del certificado.
2. Import tool port: debe coincidir con el configurado en [
nginx/default
] (por defecto443
).3. Import tool api protocol: en el uso de certificados debe cambiarse a https (por defecto
HTTPS
).4. Path of CA file to validate SSL: debe registrarse la ruta donde se almacena el CA (Certificate Authority) del Agregador. Este certificado es empleado para verificar los certificados de los Import-tools añadidos (por ejemplo,
https://wocu-it
). En caso de no añadir la ruta del certificado cuando sí se ha habilitado HTTPS, el sistema devolverá un fallo.
Generación de certificados
Ya que WOCU-Monitoring se despliega con solo un certificado para el dominio
wocu
(Agregador) y para el dominio de wocu-it
(Import-tool),
en el caso de que existan más Import-tools, será necesario generar un
certificado para cada uno de ellos.
Para ello, se deberán realizar las siguientes tareas:
A continuación, se expone un gráfico explicativo:
Generar certificados
Para la generación de certificados podemos emplear el CA ya generado por WOCU-Monitoring, algo que no aconsejamos a menos que se trate de una demo o casuística similar, por lo que procederemos a explicar el flujo completo.
Este paso deberemos repetirlo por cada Import-tool y, en última instancia, para el Agregador.
Importante
La ruta empleada para guardar los certificados, deberá ser accesible por el usuario wocu. Es por eso que utilizaremos por defecto
[/opt/wocu/embedded/ssl/certs]
.a. Creación de la key
Para un CA, añadir
CA
al nombre de la llave.openssl genrsa -out newCA.key 2048b. Creación del certificado con la key
Para CA usamos la llave con
CA
. Para una expiración menor a 10 años, será necesario cambiar el valor de-days
a lo deseado.Importante
Al crear los certificados de CA y del server, el
CN
no debe coincidir entre ambos certificados ya que dará error deself signed certificate
.openssl req -new -x509 -key newCA.key -out newCA.crt -days 3650Cuando se genere el CA o un nuevo certificado (para Agregador o Import-tool) será necesario rellenar los siguentes atributos.
C: Country
ST: State
L: Locality
O: Organization
OU: Organization Unit
CN: Common Name. Deberá ser el mismo que el
$DOMAIN
excepto cuando se cree una CA, que se debera añadirCA
.c. Creación del fichero para el CSR (Certificate Signing Request).
cat > csr-$DOMAIN.conf << EOF [ req ] default_bits = 2048 prompt = no default_md = sha256 req_extensions = req_ext distinguished_name = dn [ dn ] C = ES ST = Madrid L = Madrid O = Wocu Monitoring S.L. OU = Wocu CN = $DOMAIN [ req_ext ] subjectAltName = @alt_names [ alt_names ] DNS.1 = $DOMAIN EOFImportante
Es necesario cambiar la variable de
$DOMAIN
por el nombre del dominio y reemplazar las variables asociadas a[ dn ]
.d. Creación del CSR (no aplica para CA)
Procedemos a generar el CSR utilizando el fichero de
csr-$DOMAIN.conf
creado anteriormente.openssl req -new -key new.key -config csr-$DOMAIN.conf -out new.csre. Creación del fichero .ext para firmar el CSR
cat > $DOMAIN.ext << EOF authorityKeyIdentifier=keyid,issuer basicConstraints=CA:FALSE keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment subjectAltName = @alt_names [alt_names] DNS.1 = $DOMAIN EOFImportante
Recordar nuevamente reemplazar el
$DOMAIN
por el dominio.f. Firma del CSR
openssl x509 -req -in new.csr -CA newCA.crt -CAkey newCA.key \ -CAcreateserial -out $CERTIFICATE_Signed.crt -days 1825 -sha256 -extfile \ $DOMAIN.ext
Modificar Nginx
Con los certificados ya generados, a continuación se configura distintos parámentros de Nginx:
# # Certificates # server_name $DOMAIN; ssl_certificate $PATH/$CERTIFICATE_Signed.crt; ssl_certificate_key $PATH/$CERTIFICATE.key;
Una vez más, cambiaremos $DOMAIN
por el nombre empleado en los
certificados.
Modificar Import-tool del Agregador
Será necesario modificar la configuración del Import-tool en el Agregador como se indica en el apartado Configuración del Agregador (GUI).
Certificados de cliente
En este caso, ejecutar las tareas detalladas en el punto 2. y 3. de la Configuración del Agregador (GUI).
Mantener HTTP
En caso de no querer implementar SSL entre el Agregador y el Import-Tool deberemos conservar la siguiente configuración en el Nginx.
En el bloque de server
, cambiar las variables de listen
y de
server_name
:
listen 80 default_server; server_name _;
A continuación, comentar las variables de los certificados:
# # Certificates # #ssl_certificate $PATH/$NEW_CERTIFICATE.crt; #ssl_certificate_key $PATH/$NEW_CERTIFICATE.key;
Y sobre location /import-tool
:
#proxy_set_header X-Forwarded-Proto https;
Atención
En caso de mantener HTTP, no se deberá realizar ningún cambio en el GUI del Agregador o Import-Tool.