LinuxParty
Antes de empezar, deberías leer este artículo de documentación: Información sobre los certificados digitales, una vez leído el artículo, procede.
Tal vez lo que estás buscando es:
Generar tu certificado SSL gratis, manualmente con Let's Encrypt
o
Instalar y configurar Postfix y Dovecot, con autenticación y TLS
Este documento es sobre la creación de tu propio certificado y autoridad certificadora, de ser así, continúa.
En la configuración de Openssl lo que vamos a hacer es establecer una autoridad certificadora y emitir los certificados necesarios, tanto para las conexiones cifradas como para el acceso EAP-TLS.
Crear una autoridad certificadora
Tenemos que crear una estructura de directorios adecuada u las llaves privada y pública, así como un fichero índice para los certificados generados por esta autoridad.
Crear la estructura de directorios
mkdir -p /etc/pki/CA mkdir -p /etc/pki/CA/certs mkdir -p /etc/pki/CA/crl mkdir -p /etc/pki/CA/newcerts mkdir -p /etc/pki/CA/private
Crear el fichero índice
Simplemente creamos el fichero
touch /etc/pki/CA/index.txt
Crear los certificados de la CA
Vamos a crear el certificado con una caducidad de 10 años, 3650 días:
openssl req -new -keyout /etc/pki/CA/private/cakey.pem \
-out /etc/pki/CA/careq.pem
openssl ca -create_serial -out /etc/pki/CA/cacert.pem –days 3650 -batch \
-keyfile /etc/pki/CA/private/cakey.pem -selfsign \
-extensions v3_ca \
-infiles /etc/pki/CA/careq.pem
Y con esto tenemos creada la autoridad certificadora. Es importante conservar la contraseña de la llave privada que hemos utilizado puesto que es la clave que vamos a necesitar para firmar los certificados emitidos por esta autoridad certificadora.
Dar a conocer a nuestra Autoridad Certificadora
cp /etc/pki/CA/cacert.pem /etc/pki/ca-trust/source/anchors/ update-ca-trust
Creación de certificados.
Certificado de servidor
Cuando emitimos un certificado para un servidor deberemos asegurarnos que lo emitimos con el nombre correcto del servidor. Algunos servicios no funcionarán si el nombre al que está emitido el certificado no es idéntico al nombre del servidor.
Primero creamos una carpeta para guadar los certificados:
mkdir /etc/pki/tls/caronte.bezmi.ies
cd /etc/pki/tls/caronte.bezmi.ies
A continuación hacemos una solicitud de certificado. Así obtenemos las llaves pública y privada. La llave privada irá cifrada con una clave. Si no quisiéramos ponerle clave, añadimos la opción -nodes. No obstante más tarde crearemos una copia de la llave privada sin contraseña. Si añadimos -config openssl.cnf, tomará de ahí los datos predeterminados. Si no especificamos un fichero openssl.cnf entonces usará el fichero genérico /etc/pki/tls/openssl.cnf.
Podemos cambiar la ubicación de la esta carpeta donde se guardan los certificados emitidos.
openssl req [-config /etc/pki/tls/openssl.cnf] -new -keyout caronte.bezmi.ies.key \ -out caronte.bezmi.ies.req -days 365
Ahora firmamos el certificado con nuestra autoridad certificadora. Para poder firmar un certificado necesitamos la clave de la llave privada de la autoridad certificadora.
openssl ca -policy policy_anything \ -out caronte.bezmi.ies.crt \ -infiles caronte.bezmi.ies.req
Ahora convertimos el anterior certificado a otros formatos que pueden ser de utilidad:
openssl x509 -in caronte.bezmi.ies.crt \
-out caronte.bezmi.ies.pem
openssl x509 -inform PEM -outform DER \ -in caronte.bezmi.ies.pem \ -out caronte.bezmi.ies.der
Certificados para clientes
Primero creamos una carpeta para guadar los certificados:
mkdir -p /etc/pki/tls/usuarios/usuario cd /etc/pki/tls/usuarios/usuario
A continuación hacemos una solicitud de certificado y seguimos el mismo proceso anterior.
openssl req [-config /etc/pki/tls/openssl.cnf] -new -keyout caronte.bezmi.ies.key \ -out caronte.bezmi.ies.req -days 365
Ahora firmamos el certificado con nuestra autoridad certificadora. Para poder firmar un certificado necesitamos la clave de la llave privada.
openssl ca -policy policy_anything \ -out usuario.crt \ -infiles usuario.ies.req
Ahora convertimos el anterior certificado a otros formatos que pueden ser de utilidad:
openssl x509 -in usuario.crt \ -out usuario.pem
openssl x509 -inform PEM -outform DER \ -in usuario.pem \ -out usuario.der
openssl pkcs12 -export -in usuario.pem \ -inkey usuario.key \ -certfile /etc/pki/CA/cacert.pem \ -name "usuario" \ -out usuario.p12 -clcerts
Eliminar la clave de una llave privada
Cuando instalamos una pareja de clave pública y provada en un determinado servidor, la llave privada se tiene que desbloquear en el momento de lanzar el servidor. Algunos permiten una directiva para especificar la clave de acceso a la llave privada, pero otros no. En este último caso nuestras opciones son suministrar la clave manualmente cuando lanzamos el servidor, algo no deseable o bien tener una llave privada sin contraseña. Para crear una llave privada sin contraseña ejecutamos:
openssl rsa -in privada.key -out privada.sc.key
El fichero de llave privada sin contraseña deberá tener los permisos lo más restringidos que sea posible.
Clientes de Windows
Si una vez terminado el proceso encontramos dificultades con clientes Windows, al firmar podemos añadir:
openssl ca -policy policy_anything \ -out usuario.crt \ -extensions xpclient_ext -extfile /etc/pki/xpextensions \ -infiles usuario.ies.req
donde el fichero /etc/pki/xpextensions contiene:
[ xpclient_ext] extendedKeyUsage = 1.3.6.1.5.5.7.3.2 [ xpserver_ext] extendedKeyUsage = 1.3.6.1.5.5.7.3.1
TinyCA
TinyCA es una alternativa para crear una autoridad certificadora y gestionarla desde un entorno gráfico. Incluso podemos usar la pareja de llaves generadas manualmente, junto con un fichero openssl.cnf para gestionar una Autoridad Certificadora desde el entorno gráfico.
La carpera de tinyCA contiene los siguientes ficheros:
- cacert.key
- cacert.pem
- index.txt
- index.txt.attr
- serial
- serial.old
- index.txt.old
- openssl.cnf
y las siguientes carpetas
- certs
- crl
- req
- keys
- newcerts
Vía: bdat.net
-
Seguridad
- ¿El gobierno de EE. UU. ignoró la oportunidad de hacer que TikTok fuera más seguro?
- ¿Qué es SSH y cómo se utiliza? Los conceptos básicos de Secure Shell que necesitas saber
- Asegurar memcached del servidor, para evitar amplificar ataques DDoS
- Consejos de Seguridad para Pagos Móviles en España: Protege tus Transacciones con Estos Consejos Prácticos
- Snort para Windows, detección de Intrusos y seguridad.
- 22 herramientas de seguridad de servidores Linux de código abierto en 2023
- 8 hábitos que deben tomar los teletrabajadores altamente seguros
- 7 cosas que incluso los nuevos usuarios de Linux pueden hacer para proteger mejor el sistema operativo
- Recuperar contraseñas de archivos comprimidos en 3 pasos
- Administración: Glances - herramienta de monitoreo y supervisión para Linux
- Cómo monitorear sistemas Linux remotos con Glances
- Los 5 mejores VPN del momento
- Cómo bloquear ataques de fuerza bruta SSH usando SSHGUARD en Linux
- Cómo purgar y limpiar tus discos y borrar archivos en forma segura
- Generar password aletorios en Linux