Para crear un almacen de certificados tipo jks se ejecuta lo siguiente con keytool:
{jdk.path}/bin/keytool -genkey -alias {nameAlias} -keyalg RSA -keystore {path.to.file}/fileName.jks
Introduzca la contraseña del almacén de claves:
Volver a escribir la contraseña nueva:
¿Cuáles son su nombre y su apellido?
[Unknown]:
¿Cuál es el nombre de su unidad de organización?
[Unknown]:
¿Cuál es el nombre de su organización?
[Unknown]:
¿Cuál es el nombre de su ciudad o localidad?
[Unknown]:
¿Cuál es el nombre de su estado o provincia?
[Unknown]:
¿Cuál es el código de país de dos letras de la unidad?
[Unknown]:
¿Es correcto CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown?
[no]: si
Solicitará una constraseña que es para acceder al almacen de certificados, distribuciones java por defecto establecen la contraseña changeit.
Crear almacen con formato PKCS12. Se agrega la opcion -storetype
{jdk.path}/bin/keytool.exe -genkey -alias {nameAlias} -keyalg RSA -storetype pkcs12 -keystore {path.to.file}/fileName.p12
Introduzca la contraseña del almacén de claves:
Volver a escribir la contraseña nueva:
¿Cuáles son su nombre y su apellido?
[Unknown]:
¿Cuál es el nombre de su unidad de organización?
[Unknown]:
¿Cuál es el nombre de su organización?
[Unknown]:
¿Cuál es el nombre de su ciudad o localidad?
[Unknown]:
¿Cuál es el nombre de su estado o provincia?
[Unknown]:
¿Cuál es el código de país de dos letras de la unidad?
[Unknown]:
¿Es correcto CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown?
[no]: si
viernes, 11 de octubre de 2019
miércoles, 17 de abril de 2019
Notas Docker
Chuleta para docker
Listar todos los contenedores
docker ps -a
Iniciar un contenedor
docker start idContenedor
Iniciar session se se delaro iterativo un contenedor
docker attach idContenedor
Listar todos los contenedores
docker ps -a
Iniciar un contenedor
docker start idContenedor
Iniciar session se se delaro iterativo un contenedor
docker attach idContenedor
martes, 9 de abril de 2019
Certificados en java SSLHandshakeException ValidatorException: PKIX path
Una exepcion común en java sobre todo cuando se implementa codigo que realiza peticiones GET, POST, etc.. a un servidor es la siguiente:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Comunmente esta excepcion se logea cuando la JVM no tiene registrado el certificado en su "cacert", para palear esta exception seguir los siguientes pasos:
1)En el navegador pegar la url a la que se intenta acceder o alguna parecida, lo importante es el host del server por ejemplo https://www.dominio1.com/opcion1/opcion2
2)El navegador es posible que muestre algunas notificaciones diciendo si se quiere confiar en dicho host y que se agrega un certificado, aceptamos todo.
3)Importar el certificado desde el navegador a un fichero.
En firefox escribimos lo siguiente en la barra de navegacion "about:preferences#privacy"
Buscamos la seccion "Certificados" y presionamos en "Ver certificados". Buscamos el certificado referente al dominio "dominio1" y lo exportamos como fichero .crt a una ruta conocida.
4)Desde linea de comandos ejecutamos keytool, keytool es un comando que esta en la ruta de la JVM
"{JVMPath}/bin/" si teneis dado de alta java en el PATH del sistema os deberia de pillar sin problema, si no ir directamente a la ruta donde teneis instalado java a la carpeta bin.
4.1) se ejecuta "keytool -alias unAliasDominio1 -import -keystore {JVMPath}/lib/security/cacerts -file C:\ruta1\ruta2\certificados\dominio1Certificado.crt"
4.2)Os pedira el password del keystore "Enter keystore password:" por defecto es "changeit" sin las comillas (si lo habeis cambiado mal asunto).
"Introduzca la contraseña del almacén de claves:"
{JVMPath} Es la ruta donde tenies instalado java por ejemplo "C:\java\jdk-11.0.2"
4.3) Confirmar la confianza en este certificado
"¿Confiar en este certificado? [no]: si"
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Comunmente esta excepcion se logea cuando la JVM no tiene registrado el certificado en su "cacert", para palear esta exception seguir los siguientes pasos:
1)En el navegador pegar la url a la que se intenta acceder o alguna parecida, lo importante es el host del server por ejemplo https://www.dominio1.com/opcion1/opcion2
2)El navegador es posible que muestre algunas notificaciones diciendo si se quiere confiar en dicho host y que se agrega un certificado, aceptamos todo.
3)Importar el certificado desde el navegador a un fichero.
En firefox escribimos lo siguiente en la barra de navegacion "about:preferences#privacy"
Buscamos la seccion "Certificados" y presionamos en "Ver certificados". Buscamos el certificado referente al dominio "dominio1" y lo exportamos como fichero .crt a una ruta conocida.
4)Desde linea de comandos ejecutamos keytool, keytool es un comando que esta en la ruta de la JVM
"{JVMPath}/bin/" si teneis dado de alta java en el PATH del sistema os deberia de pillar sin problema, si no ir directamente a la ruta donde teneis instalado java a la carpeta bin.
4.1) se ejecuta "keytool -alias unAliasDominio1 -import -keystore {JVMPath}/lib/security/cacerts -file C:\ruta1\ruta2\certificados\dominio1Certificado.crt"
4.2)Os pedira el password del keystore "Enter keystore password:" por defecto es "changeit" sin las comillas (si lo habeis cambiado mal asunto).
"Introduzca la contraseña del almacén de claves:"
{JVMPath} Es la ruta donde tenies instalado java por ejemplo "C:\java\jdk-11.0.2"
4.3) Confirmar la confianza en este certificado
"¿Confiar en este certificado? [no]: si"
miércoles, 9 de enero de 2019
Recopilatorio de Bash y comandos Linux
COMANDOS
Crear varios directorios a la vez
mkdir -p /opt/folder1/folder2/folder3
Copiar el rsa key del host1 al host2 para no proporcionar la passwor del "usuario" cada vez que se realiza una conexion ssh del host1 al host2
[user@hots1]$ ssh-copy-id -i /home/user/.ssh/id_rsa.pub user@host2
Generar el id_rsa.pub
ssh_keygen
Editor VI
:set number -> muestra el numero de linea en el editor
-------------
:set fileformat=unix
:set fileformat=dos
Aplica el formato unix o dos al fichero actualmente abierto, muy util cuando se muestra el error
Not found #!/bin/bash^M
----------
:set list
Muestra los caracters ocultos en el archivo abierto
BASH
Ejemplo de for 1:
Los espacion son IMPORTANTES.
actions=(opcion1 opcion2 opcion3)
for item in ${actions[@]}; do
echo "Action: ${item}"
done
Ejemplo for 2:
for (( a=1; a < 80; a++ )); do
echo "Iteration ${a}"
done
_APP=opcion5
if [[ $_APP = "opcion1" ]]
then
echo "opcion 1"
elif [[ $_APP = "opcion2" ]]
then
echo "opcion 2"
else
echo "No es ninguna opcion"
fi
Doble condicion:
$var
if [[ $var = *"value1"* || $var = *"value2"* ]]
then
echo "var contiene value1 o value2 "
fi
Existe el directorio:
if [ -d /path/dir1/dir2 ]
then
echo "Directorio existe"
else
echo "Directorio NO existe"
fi
Fichero existe:
if [ -f /path/dir1/dir2 ]
then
echo "Fichero existe"
else
echo "Fichero NO existe"
fi
Ejemplo case :
typeVar=Z
case $typeVar in
A)
echo "opcion A"
;;
B)
echo "opcion B"
;;
C)
echo "opcion C"
;;
D)
echo "opcion D"
;;
*)
echo "opcion no definida"
;;
esac
Ejemplo obtener el PID del script en ejecucion y el pid de invocaciones dentro del mainPID
#!/bin/bash
myFunction(){
for (( a=1; a<10; a++ )); do
echo "myFunction iteration ${a}"
sleep 3
done
}
myFunction &
myFuncPid=$!
mainPid=$$
for (( a=1; a<10; a++ )); do
echo "mainPID ${mainPid} funcPid ${myFuncPid} iteration ${a}"
sleep 5
done
Crear varios directorios a la vez
mkdir -p /opt/folder1/folder2/folder3
Copiar el rsa key del host1 al host2 para no proporcionar la passwor del "usuario" cada vez que se realiza una conexion ssh del host1 al host2
[user@hots1]$ ssh-copy-id -i /home/user/.ssh/id_rsa.pub user@host2
Generar el id_rsa.pub
ssh_keygen
Editor VI
:set number -> muestra el numero de linea en el editor
-------------
:set fileformat=unix
:set fileformat=dos
Aplica el formato unix o dos al fichero actualmente abierto, muy util cuando se muestra el error
Not found #!/bin/bash^M
----------
:set list
Muestra los caracters ocultos en el archivo abierto
BASH
Ejemplo de for 1:
Los espacion son IMPORTANTES.
actions=(opcion1 opcion2 opcion3)
for item in ${actions[@]}; do
echo "Action: ${item}"
done
Ejemplo for 2:
for (( a=1; a < 80; a++ )); do
echo "Iteration ${a}"
done
IF
Igualar cadenas:Los espacios son IMPORTANTES_APP=opcion5
if [[ $_APP = "opcion1" ]]
then
echo "opcion 1"
elif [[ $_APP = "opcion2" ]]
then
echo "opcion 2"
else
echo "No es ninguna opcion"
fi
Doble condicion:
$var
if [[ $var = *"value1"* || $var = *"value2"* ]]
then
echo "var contiene value1 o value2 "
fi
Existe el directorio:
if [ -d /path/dir1/dir2 ]
then
echo "Directorio existe"
else
echo "Directorio NO existe"
fi
Fichero existe:
if [ -f /path/dir1/dir2 ]
then
echo "Fichero existe"
else
echo "Fichero NO existe"
fi
Ejemplo case :
typeVar=Z
case $typeVar in
A)
echo "opcion A"
;;
B)
echo "opcion B"
;;
C)
echo "opcion C"
;;
D)
echo "opcion D"
;;
*)
echo "opcion no definida"
;;
esac
Ejemplo obtener el PID del script en ejecucion y el pid de invocaciones dentro del mainPID
#!/bin/bash
myFunction(){
for (( a=1; a<10; a++ )); do
echo "myFunction iteration ${a}"
sleep 3
done
}
myFunction &
myFuncPid=$!
mainPid=$$
for (( a=1; a<10; a++ )); do
echo "mainPID ${mainPid} funcPid ${myFuncPid} iteration ${a}"
sleep 5
done
Suscribirse a:
Entradas (Atom)