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
- Conexión Segura NFS en Linux, Tunelizar NFS sobre SSH y Configuración de NFS sobre SSH para Mayor Seguridad
- Utilizar ssh sin contraseña con ssh-keygen y ssh-copy-id
- Millones de teléfonos móviles podrían ser vulnerables a la vigilancia del gobierno chino
- Cómo limitar las conexiones SSH a la red local en Linux
- Los televisores inteligentes son como un «caballo de Troya digital» en los hogares
- Snort para Windows, detección de Intrusos y seguridad.
- Detección de Intrusiones con las herramientas: BASE y Snort.
- El Sistema de Detección de Intrusos: Snort. ( Windows y Linux )
- Configuración con Ejemplos de Snort para Windows, detección de intrusiones
- ¿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
- 22 herramientas de seguridad de servidores Linux de código abierto en 2023
- 8 hábitos que deben tomar los teletrabajadores altamente seguros