View this PageEdit this PageUploads to this PageVersions of this PageHomeRecent ChangesSearchHelp Guide

Instalar rondashtml5 (para crpmonitorwall con milestone o tkmwall) en un TCE. Generar certificados SSL con CA uiharu.

(NOTA: esto es para generar un certificado firmado por uiharu, si se quiere uno autofirmnado, seguir el howto http://3.0.1.46:8000/HowTo/367)

NOTA2: Hay un interfaz web en uiharu para hacerlo, en https://3.0.1.3/certificados

NOTA3: También se puede hacer desde línea de comandos con una línea similar a:
wget --no-check-certificate "--post-data=data=19.81.20.64+tp2-Pelayo" https://3.0.1.3/certificados -O - | tar -xvzf -


Prodedimiento:

En uiharu, como usuario dario (se sustituye la IP y el nombre por la que le corresponda a ese equipo):
cd ~/Programacion/tkmwall/rondashtml5/certificate
./03_gen-clientcert.sh 3.0.1.64 arroyofresno arroyofresno.metro.local
# Con esto se ha generado un nuevo certificado en rondashtml5nginx.crt y rondashtml5nginx.key
# Esos ficheros son los que hay que instalar en el equipo de destino para tener SSL (se pueden renombrar)


En el tce, como root:

apt-get install nginx-extras lua-nginx-websocket
# NOTA: los paquetes para los TCE con debian 9.8 i386 están en main1:/incoming/nginx-debian98_i386/
mkdir -p /usr/local/lib/rondashtml5/cgi-bin 
# Para equipos x86_64
scp dario@3.0.1.3:Programacion/tkmwall/rondashtml5/cgicontrolid /usr/local/lib/rondashtml5/cgi-bin
# NOTA: para equipos i386 se hace
# scp dario@3.0.1.3:Programacion/tkmwall/rondashtml5/cgicontrolid.i386 /usr/local/lib/rondashtml5/cgi-bin/cgicontrolid
# Ponemos que lo arranque automáticamente cuando se arranca el nginx
sed -i '/start-stop-daemon --stop --quiet/i#SICO        ps -efa | grep "[0-9] \./cgi[c]ontrolid " | expand | sed "s/  */ /g" | cut -d " " -f 2 | xargs kill 2>/dev/null' /etc/init.d/nginx
sed -i '/|| return 2/a#SICO        ( cd /usr/local/lib/rondashtml5/cgi-bin/ && nohup ./cgicontrolid 127.0.0.1:9000 16.0.77.19:22119 & ) 2>/dev/null' /etc/init.d/nginx
sed -i "s/^#SICO//g" /etc/init.d/nginx
mkdir -p /var/log/nginx/log/
chown www-data:adm /var/log/nginx/log/
ssh dario@3.0.1.3 "cd Programacion/tkmwall/rondashtml5/ && tar -chf - rondasassets" | (cd /var/www/html/ && tar -xvf - )
ssh dario@3.0.1.3 "cd Programacion/tkmwall/rondashtml5/etc-nginx-conf.d && tar -chf - ." | (cd /etc/nginx/conf.d && tar -xvf - )
sed -i "s/serverip = \".*\"/serverip = \"$(/sbin/ifconfig -a | grep inet | head -1 | cut -d 't' -f 2 | cut -d ' ' -f 2):443\"/g" /etc/nginx/conf.d/rondas.lua
sed -i "s/as.cfg.*\"/as.cfg\"/g" /etc/nginx/conf.d/wsrondas.lua
sed -i "s/id=\".*\"/id=\"$(hostname)\"/g" /etc/nginx/conf.d/wsrondas.lua
mkdir -p /home/metro/crpmonitorwall
chown metro:metro /home/metro/crpmonitorwall
touch /home/metro/crpmonitorwall/rondas.cfg
chmod 666 /home/metro/crpmonitorwall/rondas.cfg
chown www-data:nobody /home/metro/crpmonitorwall/rondas.cfg
scp "dario@3.0.1.3:Programacion/tkmwall/rondashtml5/certificate/rondashtml5nginx.*" /etc/nginx/conf.d/certificate/
mkdir -p /etc/nginx/snippets/
scp dario@3.0.1.3:Programacion/tkmwall/rondashtml5/etc-nginx-snippets/ssl-params.conf /etc/nginx/snippets/
# Como esto tarda mucho, copiamos lo que hay en uiharu
#openssl dhparam -out /etc/nginx/dhparam.pem 4096
scp dario@3.0.1.3:/etc/nginx/dhparam.pem /etc/nginx/dhparam.pem
ln -s /etc/nginx/conf.d/certificate /etc/nginx/certificate
/etc/init.d/nginx stop ; /etc/init.d/nginx start


NOTA: Cuando se instale un equipo en metro, si se ha cambiado la ip con respecto a cuando se configuró, hay que hacer, como root:
 /etc/nginx/conf.d/update-config.sh
 /etc/init.d/nginx stop ; /etc/init.d/nginx start


Para hacerlo desde metro


Ejemplo para chamartin (18.131.58.42 chamartin chamartin.metro.local)

En uiharu, como usuario dario:
cd ~/Programacion/tkmwall/rondashtml5/certificate
./03_gen-clientcert.sh 18.131.58.42 chamartin chamartin.metro.local
scp /home/dario/Programacion/tkmwall/rondashtml5/cgicontrolid.i386 metro@main1:/incoming
cd Programacion/tkmwall/rondashtml5/ && tar -chf - rondasassets > /tmp/rondasassets.tar
scp /tmp/rondasassets.tar metro@main1:/incoming/
cd /home/dario/Programacion/tkmwall/rondashtml5/etc-nginx-conf.d && tar -chf - . > /tmp/rondasnginxconf.tar
scp /tmp/rondasnginxconf.tar metro@main1:/incoming/
(cd /home/dario/Programacion/tkmwall/rondashtml5/certificate/ && tar -chf - rondashtml5nginx.*) | ssh metro@main1 "cat >/tmp/certnginx.tar"
scp /home/dario/Programacion/tkmwall/rondashtml5/etc-nginx-snippets/ssl-params.conf metro@main1:/tmp
scp /etc/nginx/dhparam.pem  metro@main1:/tmp


En el equipo de metro, como root
scp metro@16.0.62.18:/incoming/nginx-debian98_i386/* /var/cache/apt/archives
apt-get install nginx-extras lua-nginx-websocket
mkdir -p /usr/local/lib/rondashtml5/cgi-bin 
scp metro@main1:/incoming/cgicontrolid.i386 /usr/local/lib/rondashtml5/cgi-bin/cgicontrolid
sed -i '/start-stop-daemon --stop --quiet/i#SICO        ps -efa | grep "[0-9] \./cgi[c]ontrolid " | expand | sed "s/  */ /g" | cut -d " " -f 2 | xargs kill 2>/dev/null' /etc/init.d/nginx
sed -i '/|| return 2/a#SICO        ( cd /usr/local/lib/rondashtml5/cgi-bin/ && nohup ./cgicontrolid 127.0.0.1:9000 16.0.77.19:22119 & ) 2>/dev/null' /etc/init.d/nginx
sed -i "s/^#SICO//g" /etc/init.d/nginx
mkdir -p /var/log/nginx/log/
chown www-data:adm /var/log/nginx/log/
ssh metro@16.0.62.18 "cat /incoming/rondasassets.tar" | (cd /var/www/html/ && tar -xvf - )
ssh metro@main1 "cat /incoming/rondasnginxconf.tar" | (cd /etc/nginx/conf.d && tar -xvf - )
sed -i "s/serverip = \".*\"/serverip = \"$(/sbin/ifconfig -a | grep inet | head -1 | cut -d 't' -f 2 | cut -d ' ' -f 2):443\"/g" /etc/nginx/conf.d/rondas.lua
sed -i "s/as.cfg.*\"/as.cfg\"/g" /etc/nginx/conf.d/wsrondas.lua
sed -i "s/id=\".*\"/id=\"$(hostname)\"/g" /etc/nginx/conf.d/wsrondas.lua
chown metro:metro /home/metro/crpmonitorwall
touch /home/metro/crpmonitorwall/rondas.cfg
chmod 666 /home/metro/crpmonitorwall/rondas.cfg
chown www-data:nobody /home/metro/crpmonitorwall/rondas.cfg
ssh metro@main1 "cat /tmp/certnginx.tar" | (cd /etc/nginx/conf.d/certificate/ && tar -xvf - )
mkdir -p /etc/nginx/snippets/
scp metro@main1:/tmp/ssl-params.conf /etc/nginx/snippets/
scp metro@main1:/tmp/dhparam.pem /etc/nginx/dhparam.pem
ln -s /etc/nginx/conf.d/certificate /etc/nginx/certificate
/etc/init.d/nginx stop ; /etc/init.d/nginx start



Instalación del certificado en el navegador


Hay que importar en el navegador el certificado de

 uiharu:/home/dario//Programacion/tkmwall/rondashtml5/certificate/UIHARURootCA.crt

Y si quieres acceder al https de 3.0.1.3 para temas de pruebas, también tendrás que instalar old UIHARURootCA.crt

NOTA: para chrome puedes seguir estas instrucciones (ext. link.),con dos cambios: hay que importarlo en "Entidades de certificación raíz de confianza" en vez de "Entidades de certificación intermedias", y que cuando habla de passwords, el certificado de UIHARU no tiene password (ignora esa parte del howto).

Attachs

UIHARURootCA.crt
old UIHARURootCA.crt