dns

Problema

nslookup encuentra el nombre a partir de la IP, pero ping no resuelve la IP a partir del nombre.

Lee el resto de esta entrada »

Anuncios


Recientemente he instalado Ubuntu 18.04 en mi Cube i7 Stylus.

La mayoría de las cosas funcionan out-of-the-box. Para las problemáticas, aquí están mis “trucos”.
Lee el resto de esta entrada »


Requisitos:

  • Tener instalado OpenSSL 1.0
  • Tener instalado la JDK 1.8

Creación de una Autoridad Certificadora:

  1. Genera clave privada de la CA
    openssl genrsa -des3 -out private/ca-private.key 2048
  2. Generar una petición de certificado para la propia CA
    openssl req -new -key private/ca-private.key -out ca.csr -subj "/C=ES/ST=Asturias/L=Siero/O=RuBeNsA/OU=Departamento Seguridad/CN=rubensa.eu.org"
  3. Generar el certificado de la CA firmado por la propia CA
    openssl x509 -signkey private/ca-private.key -req -days 3650 -in ca.csr -out public/ca.crt

Creación de un certificado de servidor:

  1. Crear un almacén de claves con la clave privada del servidor
    keytool -genkeypair -keystore private/server.p12 -storetype PKCS12 -alias server -keyalg RSA -keysize 2048 -dname "CN=rubensa.eu.org,OU=Departamento Seguridad,O=RuBeNsA,L=Siero,S=Asturias,C=ES" -ext san=dns:rubensa.eu.org,dns:localhost,ip:127.0.0.1
  2. Generar una petición de certificado
    keytool -certreq -alias server -keystore private/server.p12 -storetype PKCS12 -file server.csr
  3. Generar un certificado firmado por la CA (si existe previamente el fichero “serial.txt” eliminar -CAcreateserial)
    openssl x509 -req -days 365 -in server.csr -CA public/ca.crt -CAkey private/ca-private.key -CAcreateserial -CAserial serial.txt -out public/server.crt
  4. Importar el certificado de la CA en el almacén de claves del servidor
    keytool -import -alias CA -file public/ca.crt -keystore private/server.p12 -storetype PKCS12
  5. Importar el certificado firmado del servidor en el almacén de claves
    keytool -import -alias server -file public/server.crt -keystore private/server.p12 -storetype PKCS12
  6. Exportar la clave privada del servidor
    openssl pkcs12 -in private/server.p12 -nodes -nocerts -out private/server-private.key
  7. Exportar la clave pública del servidor
    openssl rsa -in private/server-private.key -pubout > public/server-public.key

Creación de un certificado de cliente (con estructura de DNI electrónico):

  1. Generar la clave privada del cliente
    openssl genrsa -des3 -out private/client-private.key 2048
  2. Crear un fichero “dnie.cnf” con el siguiente contenido

    [ req ]
    distinguished_name = req_distinguished_name

    [ req_distinguished_name ]
    countryName = Pais (2 letras)
    countryName_default = ES
    countryName_min = 2
    countryName_max = 2

    commonName = Apellido1 Apellido2, Nombre (AUTENTICACIÓN|FIRMA)
    commonName_max = 64

    givenName = Nombre

    surname = Apellido1

    serialNumber = NNNNNNNNA (número de DNI con letra)
    serialNumber_min = 9
    serialNumber_max = 9

  3. Generar una petición de certificado
    openssl req -config dnie.cnf -new -key private/client-private.key -out client.csr
  4. Generar un certificado firmado por la CA (si no existe previamente el fichero “serial.txt” añadir -CAcreateserial)
    openssl x509 -req -days 365 -in client.csr -CA public/ca.crt -CAkey private/ca-private.key -CAserial serial.txt -out public/client.crt
  5. Generar un fichero pkcs12 para importar el certificado en el navegador
    openssl pkcs12 -export -clcerts -in public/client.crt -inkey private/client-private.key -out private/client.p12 -name "client"

Creación de un truststore (un almacén de claves en el que ir guardar los certificados en los que el servidor “confía”):

  1. Crear un keystore
  2. Importar el certificado del CA (de tal modo que cualquier certificado de cliente firmado por la CA sea válido)
    keytool -importcert -alias CA -file public/ca.crt -keystore private/truststore.p12 -storetype PKCS12 -keyalg RSA -keysize 2048

Nota: Para poder consultar los certificados existentes en un keystore podemos utilizar el siguiente comando
keytool -v -list -keystore private/server.p12 -storetype PKCS12

Algunos enlaces de interés
Receta para la creación de certificados de prueba desde cero
Steps to generate self-signed PKCS#12 SSL certificate and export its keys


Aprender JavaScript moderno es como si desde el principio no hubieses estado ahí. El ecosistema está creciendo y cambiando tan rápidamente que es difícil comprender los problemas que las diferentes herramientas están tratando de resolver.

El objetivo de este artículo es proporcionar un contexto histórico de cómo han evolucionado las herramientas JavaScript hasta lo que son hoy, en 2017. Empezaremos desde el principio, construyendo un sitio web de ejemplo como lo hacían los dinosaurios – sin herramientas, solamente HTML plano y JavaScript. Posteriormente iremos introduciendo diferentes herramientas, una a una, de manera incremental para ver los problemas que resuelven. Con este contexto histórico, podrás adaptarte mejor al siempre cambiante ecosistema JavaScript. ¡Empecemos!

Lee el resto de esta entrada »

spring-by-pivotal
Hay muchos conceptos básicos en el Framework Spring que pueden resultar confusos. Uno de ellos es la configuración basada en Java. A continuación encontrarás una descripción condensada de cómo declarar beans usando la configuración en Java.

Ten en cuenta que esta entrada no cubre las dependencias entre beans de diferentes ámbitos ni cubre anotaciones como @Component, @Service, @Repository, etc., que a menudo son una buena alternativa a lo aquí descrito.

Lee el resto de esta entrada »

eclipse_logo
A raíz de la última actualización de Ubuntu (pasando de 17.04 GNOME a 17.10) he tenido problemas (“Unhandled event loop exception” al intentar cambiar de perspectiva utilizando la botonera) al ejecutar alguna versión de Eclipse (concretamente la 4.6.3, con la 4.7.l no he tenido problemas).

El problema parece estar relacionado con libwebkit y GTK3.

Para solucionarlo (forzando el uso de GTK2) he tenido que modificar el eclipse.ini para incluir:

--launcher.GTK_version
2

de tal modo que ahora queda algo así:

-startup
plugins/org.eclipse.equinox.launcher_1.3.201.v20161025-1711.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.401.v20161122-1740
--launcher.GTK_version
2
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.defaultAction
openFile
--launcher.appendVmargs
-configuration
/home/rubensa/development/eclipse/4.6.3/configuration
-data
/home/rubensa/development/eclipse/4.6.3/workspace
-vm
/home/rubensa/software/jdk1.8/bin/java
-vmargs
-Dosgi.requiredJavaVersion=1.8
-XX:+UseG1GC
-XX:+UseStringDeduplication
-Dosgi.requiredJavaVersion=1.8
-Xms256m
-Xmx1024m
-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=/home/rubensa/development/eclipse/4.6.3/dropins

angular

NgModule es la estructura básica con la que te encuentras al codificar una aplicación con Angular, pero también es la más sutil y compleja, debido a sus diferentes ámbitos. La documentación de Angular tiene incluso una completa FAQ acerca de NgModules, pero sigue siendo una locura entenderlos.

Lee el resto de esta entrada »

A %d blogueros les gusta esto: