domingo, 16 de diciembre de 2018

Instalar SSL en Tomcat 7 facil con .pfx o .p12

Holas, una manera fácil de activar https o SSL en tomcat con un certificado digital ya emitido. Pasos para Centos 6 y Tomcat 7.

1. Generamos el archivo pfx o p12 si no lo tuviéramos. Se debe tener el .cer el .key y el .cer de la Autoridad Certificadora:

openssl pkcs12 -export -in micertificado.crt -inkey miclaveprivada.key -out mipkcs12.p12 -name tomcat -CAfile certificadodeca.crt -caname root -chain

Te va a pedir la clave privada, la colocas dos veces y ya.
Esto genera un archivo mipkcs12.p12

*Actualizacion: Si al usar el comando anterior te da el error "Error unable to get issuer certificate getting chain.", entonces debes hacer lo siguiente (al menos en Centos 6 fue asi):

cat certificadodeca.crt /etc/ssl/certs/ca-bundle.crt > allcacerts.crt

eso te genera un nuevo archivo allcacerts.crt, usas este archivo como el certificado de la  Autoridad Certificadora, asi que el comando a ejecutar ahora seria como sigue:

openssl pkcs12 -export -in micertificado.crt -inkey miclaveprivada.key -out mipkcs12.p12 -name tomcat -CAfile allcacerts.crt -caname root -chain

listo!! ahora si.. a poner clave y te genera el .p12


2. Modificamos el archivo server.xml de Tomcat 7 y agregamos el siguiente conector:

          port="8443" minProcessors="5" maxProcessors="75"
          enableLookups="true" disableUploadTimeout="true"
          acceptCount="100"  maxThreads="200"
          scheme="https" secure="true" SSLEnabled="true"
          keystoreFile="mipkcs12.p12"
          keystorePass="tuclaveprivada"
          keystoreType="PKCS12" />

En el parámetro keystoreFile="mipkcs12.p12" deben poner la ruta completa donde esta ubicado su archivo.
No estoy muy seguro de estos dos parámetros minProcessors="5" maxProcessors="75", pero funciona. Guardas, reinicias Tomcat y listo.. ya tienes tomcat en puerto 8443 con tu certificado.
Bytes


Referencias:
https://www.tbs-certificates.co.uk/FAQ/en/118.html
https://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html#Prepare_the_Certificate_Keystore

https://superuser.com/questions/1142555/openssl-p12-generation-failing-with-ca-bundle-chain-option

sábado, 20 de octubre de 2018

Dividir un archivo y volverlo a unir

Holas.. algo muy super practico es la utilidad split para dividir un archivo en partes mas pequeñas y luego volver a unirlos con cat.

Los comandos implicados entonces son split y cat.
Haré el ejemplo comprimiendo primero un archivo de backup plano muy grande de una pase de datos con gzip.

Comprimir el archivo dump

gzip midb.dump.out

Dividir el archivo comprimido gz en partes de 50 Megas:

split -b 50M midb.dump.out.gz midb.dump.out.gz_part_

Unir el archivo

cat midb.dump.out.gz_part_* > midb.dump.out.gz

Y si quieren volver a descomprimir:

gzip -d midb.dump.out.gz

Listo, ya es decisión suya que hacer con los archivos pequeños.. backups.. transmisiones.. etc etc.

Bytes

domingo, 13 de agosto de 2017

Instalar cliente dyndns en Centos6

Este manual instala un cliente basado en perl llamado ddclient
*Basado en:
https://techjourney.net/install-ddclient-dynamic-dns-ddns-update-client-in-centos/
https://help.dyn.com/ddclient/

1. Instalar los paquetes necesarios en el SO
yum install perl perl-Net-IP perl-Net-DNS perl-IO-Socket-INET6 perl-IO-Socket-SSL perl-File-Temp patch

2. Descargar ddclient de sourceforge
wget http://downloads.sourceforge.net/project/ddclient/ddclient/ddclient-3.8.3/ddclient-3.8.3.tar.bz2

3. Instalar manualmente ddclient: se descomprime, se copia el ejecutable en sbin, se crean las carpetas para el servicio y para el cache, se copian los archivos de configuracion de ejemplo.

tar -xvf ddclient-3.8.3.tar.bz2
cd ddclient-3.8.3
cp ddclient /usr/sbin/
mkdir /etc/ddclient
mkdir /var/cache/ddclient
cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf
cp sample-etc_rc.d_init.d_ddclient /etc/init.d/ddclient

4. Editamos el archivo de configuracion

cd /etc/ddclient/
nano ddclient.conf

5. Agregamos al final del archivo lo siguiente:

use=web, web=checkip.dyndns.com/, web-skip='IP Address'
login=su-username
password=su-password
protocol=dyndns2
server=members.dyndns.org
wildcard=YES
su-dominio.dyndns.org

6. Reemplazamos usuario, password y dominio según corresponda, guardamos los cambios

7. Agregamos el servicio al SO

chkconfig --add ddclient

8. probamos que funcione

ddclient -daemon=0 -debug -verbose -noquiet

9. Si todo OK, iniciamos el servicio

service ddclient start

Listo!! bye