0% encontró este documento útil (0 votos)
8 vistas22 páginas

guiaxcaopenssl

Descargar como pdf o txt
Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1/ 22

Guía para crear y gestionar

certificados digitales por XCA y


OpenSSL
Este tutorial es para crear un certificado auto firmado para ser utilizado en pruebas desde
nuestro servidor local, este no tendrá ningún tipo de validez externa ya que no es firmado
por una entidad certificadora.

OpenSSL
1
Primero es interesante conocer algunos parámetros de nuestro OpenSSL.
OpenSSL, como implementación del protocolo TLS, incorpora las denominadas cipher
suites, conjuntos de algoritmos simétricos, asimétricos y funciones Hash necesarios para
lograr una comunicación segura.

Lo primero es descargar el paquete OpenSSL v3.2.1 para Windows de la siguiente


dirección web:

https://slproweb.com/products/Win32OpenSSL.html

Descargar una de las versiones que no sea Light, por ejemplo:

Una vez descargado, instalar como cualquier otro programa sin mover ninguna de las
opciones que ya tiene por defecto el instalador.
1
https://www.mordor.world/2022/03/11/herramienta-xca-para-crear-y-gestionar-certificados/
https://kiuvox.com/como-crear-un-certificado-openssl-para-localhost-en-windows/
https://www.ibm.com/docs/es/rtw/9.0.0?topic=overview-creating-digital-certificate-openssl
Después de instalado abrir una consola o cmd con permisos de administrador y crear una
variable de configuración para OpenSSL con el siguiente comando:

Agregar una variable de entorno para poder utilizar el comando "openssl" en la consola.
Abrir la ventana para agregar variables de entorno del sistema operativo, depende de la
versión de Windows, y agregar la ruta del directorio "bin" al Path de las variables:

C:\Program Files\OpenSSL-Win64\bin

Dependiendo de la versión de Windows habrá que reiniciar el equipo, si es Windows 10


bastará con cerrar la consola y volver a abrir otra (con permisos de administrador), digitar el
comando "openssl" y el resultado debe ser el intérprete de comandos de OpenSSL.
Podemos salir del interprete de comandos con "exit", ahora debemos crear una carpeta
donde guardaremos los certificados que estamos por hacer, mi carpeta se llama "ssl_local".

Desde la consola navegamos hasta ese directorio donde crearemos una llave RSA-2048
que luego servirá para generar el certificado, podes ocupar los nombres que quieras, yo le
llamaré "localCA.key", usamos el siguiente comando:

Luego de ejecutarlo te pedirá que introduzcas una contraseña y luego la confirmes.

Ahora crearé el siguiente archivo pem que es el medio para codificar data, con nombre
"localCA.pem" y que tendrá una validez de 1,024 días para este ejemplo:

Como notarán estamos utilizando la llave que recién creamos para lograr generar el
certificado pem. Debemos introducir la contraseña de la llave.

En el procedimiento se pedirán algunos valores de configuración para el certificado, algunos


se pueden dejar en blanco o introducir el valor por defecto, queda a discreción:

Country Name (2 letter code) [AU]: VE


State or Province Name (full name) [Some-State] : Venezuela
Locality Name (eg, city) []: Venezuela
Organization Name (eg, company): UNIMAR
Organizational Unit Name (eg., section): Ingenieria
Common Name: Teleinformatica
Email: teleinfo@gmail.com
Ahora de requisito debemos crear dos archivos para crear finalmente los certificados ssl que
buscamos obtener. Al primero le llamaremos "server.csr.cnf", utiliza la información como se
introdujo al crear el certificado pem:

[req]
default_bits = 2048
prompt = no
default_md = sha256
distinguished_name = dn

[dn]
C=VE
ST=Venezuela
L=Venezuela
O=UNIMAR
OU=Ingenieria
emailAddress=teleinfo@gmail.com
CN = teleinfo.local

El segundo archivo tendrá de nombre "v3.ext" que sirve para crear un certificado X509 v3,
con el siguiente contenido:

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = teleinfo.local

Ya casi vamos llegando al final de lo que necesitamos, vamos a crear la llave y certificado
que firma solicitudes para el dominio, vamos a utilizar el archivo de respuesta
"server.csr.cnf" para crear los archivos "teleinfo.local.key" y "teleinfo.local.csr":

openssl req -new -sha256 -nodes -out teleinfo.local.csr -newkey rsa:2048 -keyout
teleinfo.local.key -config server.csr.cnf

Finalmente debemos firmar nuestro certificado, el resultado será el archivo


"teleinfo.local.crt", en el siguiente comando el parámetro "-days" indica la cantidad de días
que tendrá de validez el certificado, también utilizaremos el archivo v3.ext para introducir
configuraciones:

openssl x509 -req -in teleinfo.local.csr -CA localCA.pem -CAkey localCA.key -CAcreateserial
-out teleinfo.local.crt -days 730 -sha256 -extfile v3.ext

Digitar la contraseña de la llave.


Esta da como resultado el certificado que podemos agregar, por ejemplo, a nuestro servidor
web Apache.

Si quieren conocer más sobre los comando y parámetros ver la documentación de


OpenSSL

También se pueden gestionar los certificados mediante git bash usando esta terminal que ya
incluye OpenSSL al instalar git en windows.
y seguir los pasos mencionados anteriormente o en Learn Microsoft

A través de XCA

XCA es una Herramienta gráfica que utiliza las librerías de OpenSSL para gestionar
nuestros certificados y creación de entidades certificadoras y certificados cliente/servidor.

Muy útil para almacenar todos nuestros certificados y no tener que montar ningún servidor
de PKI

¿Qué se explicará con XCA?


● Templates
● Certificado CA
● Certificado Cliente/sertvidor
● Exportar certificados
● Importar certificados

La herramienta se puede descargar XCA download SourceForce.net

La interfaz es bastante sencilla, en la ventana podemos observar las siguientes pestañas:

● Private Keys, almacenamiento de claves privadas.


● Certificate signing requests, para solicitar certificados.
● Certificates, almacenamiento de Certificados.
● Templates, plantillas para generar nuestros certificados.
● Revocation lists, la lista de los revocados.
Lo primero que tendremos que hacer es ir a File > New Database, generaremos un fichero
.xdb e introducir nuestra password para encriptar las claves privadas.

Templates
En templates vamos a generar una plantilla para entidad certificadora y para certificados
cliente/servidor.
Nos pedirá que seleccionemos el tipo de template.

En subject, agregamos los datos de nuestro certificado, en el cuadro


inferior podemos agregar datos adicionales con los datos dados al inicio de
la guía.
En Extensions, tendremos 3 campos principales.

1. Type, acá tenemos las siguientes opciones:


a. Not defined, sin definir.
b. Certification Authority, para CA raíz e intermedia.
c. End Entity, para el certificado Cliente/servidor.
2. Time range, tiempo de validez de los certificados.
3. X509v3 Subject Altenative Name, para opciones adicionales como
DNS (para que chrome no de error)

En Key usage, marcaremos la que necesitemos según el certificado.


Entity Certificate
Server Certificate

Ya tendremos nuestras plantillas.


Certificado CA
Primero crearemos nuestro Certificado Raíz, pinchamos en New
Certificate.
En Source, seleccionamos nuestra plantilla y pulsamos en “Apply All” para
que tenga efecto y seleccionamos el algoritmo deseado por defecto “SHA
256”
En Subject, nos aparecerá todo relleno al haber aplicado la plantilla,
tendremos que rellenar “Internal name” un nombre descriptivo y
commonName para el nombre del certificado, y generamos nuestra Clave
privada pinchando en “Generate a new key”, nos solicitará un nombre para
la clave privada y la encriptación.
En extensión y Key usage, la plantilla tendrá todo lo que queríamos y si no
pues lo ponemos.
Ya tenemos nuestra CA.
Certificado Cliente/servidor
Para certificado final, igual que antes, seleccionamos la template esta vez de server y
seleccionamos en Signing a qué certificado pertenece (raíz o intermedia).

Introducimos Internal Name y CommonName, y la clave privada.


En Extensions, tendremos (Type: End Entity), fecha de validez y el X509
Ya tenemos nuestro certificado.
Exportar Certificados

Para exportar cualquier certificado o clave privada, solo pinchar sobre el y darle a Export.

Indicaremos nombre, carpeta y el formato que deseamos (crt, cer, pem, p12,..).

Importar Certificados
Igual que al exportar, también podemos importar nuestros certificados para tenerlos todos
controlados.

También podría gustarte