Mostrando entradas con la etiqueta Linux_CentOS. Mostrar todas las entradas
Mostrando entradas con la etiqueta Linux_CentOS. Mostrar todas las entradas

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

lunes, 18 de junio de 2012

Enviar LogWatch sin servidor de correo localhost

Holas, eso de administrar varios servidores es algo complejo, una buena herramienta es usar LogWatch que envia un resumen de tus archivos de Log diariamente, pero este programa funciona bien siempre y cuando tengas un smtp server en el mismo equipo, pero que sucede si no tienes este "smtp server en tu localhost", pues aqui esta la solucion.. generar un archivo texto con el resumen y luego enviarlo usando el programita sendEmail.

1. Instalar Logwatch si no lo tienes instalado
yum install logwatch

2. Descargar sendEmail en algun directorio (para este ejemplo /root)
wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz

3. Descomprimir
tar -zxvf sendEmail-v1.56.tar.gz

4. Mover o Copiar la carpeta descomprimida a /usr/lib, en mi caso mover
 mv sendEmail-v1.56 /usr/lib

5. Crear un enlace simbolico para la ejecucion de sendEmail desde cualquier directorio
ln -s /usr/lib/sendEmail-v1.56/sendEmail /usr/bin/

6. Editar Logwatch.conf para que genere un archivo de texto
nano /usr/share/logwatch/default.conf/logwatch.conf

- Descomentamos la linea
Save = /tmp/logwatch

- y comentamos la linea
#mailer = "sendmail -t"

Guardamos y salimos, o salimos guardando :o)

7. Probamos que logwatch funcione bien, ejecutamos desde la linea de comandos:
logwatch

y luego vemos que haya generado correctamente el archivo:
more /tmp/logwatch

*En algunos sistemas CentOS al ejecutar logwatch pueden tener un error de formato de fecha, eso se corrige con el comando:
echo '-0500' > /etc/timezone

8. Creamos un archivo bash para que haga el envio del archivo /tmp/logwatch:
nano /usr/share/logwatch/logToMail.sh

- Ponemos el sig. contenido:

#!/bin/bash

sendEmail -s mail.miservidor.com:25 -u "Logwatch de Mi Servidor" -t usuariodestino@miservidor.com -f "usuariodestino@miservidor.com" -xu usuariosmtp -xp passwordsmtp -a /tmp/logwatch -m "Logwath de Mi Servidor"

exit


Guardamos y salimos, o salimos guardando :o), para referencia de los parametros de sendEmail pueden poner en al linea de comandos: sendEmail --help


9. Cambiamos los permisos de nuestro archivo logToMail.sh para que sea de ejecucion:
chmod 775 /usr/share/logwatch/logToMail.sh







10. Creamos la regla en crontab para que haga el envio automatico:
crontab -e



- Alli añadimos la linea siguiente para que envie todos los dias a las 6am:
0 6 * * * /usr/share/logwatch/logToMail.sh > /usr/share/logwatch/logToMail.log



Listo!!!, es todo.. bye