Crear y revocar certificados OpenVPN en Centos 7
Antecedentes:
Espero te haya se servido de mucho, si está a tu alcance te agradeceré enormemente que le des clic a cualquier anuncio en esta página o una contribución en donar para seguir publicando.
Hemos creado nuestro servidor de conexión segura con OpenVPN, en el cual utilizamos el Internet como medio de comunicación pero con la única diferencia; que los datos pasan del cliente al servidor y viceversa de forma segura por un túnel de datos cifrado, haciendo segura la transmisión de nuestra información.
Objetivo:
En esta ocasión vamos a crear y revocar los certificados de nuestros clientes OpenVPN.
Que es OpenVpn?
OpenVPN es una solución de conectividad basada en software libre: SSL (Secure Sockets Layer) VPN Virtual Private Network (red virtual privada), OpenVPN ofrece conectividad punto-a-punto con validación jerárquica de usuarios y host conectados remotamente, resulta una muy buena opción en tecnologías Wi-Fi (redes inalámbricas IEEE 802.11) y soporta una amplia configuración, entre ellas balanceo de cargas. Está publicado bajo la licencia GPL, de software libre. Fuente Wikipedia, leer más...
Requerimientos:
- SSH Secure Shell (Descargalo aquí)
- Tener ya configurado tu servidor OpenVPN
- Un computador
Nota: Estos comandos pueden ser usados en CentOS 6 y 7 en otras distribuciones pueden variar.
Empecemos:
Nos conectamos a nuestro servidor que tiene OpenVPN con SSH Secure Shell.
Procedemos a ejecutar los siguientes comandos:
#cd /etc/openvpn/
#source ./vars
NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/keys
#sh /usr/share/easy-rsa/2.0/build-key cliente
Generating a 2048 bit RSA private key
.............................................................................+++
writing new private key to 'cliente.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [EC]:|
State or Province Name (full name) [PROV]:|
Locality Name (eg, city) [CIUDAD]:|
Organization Name (eg, company) [EMPRESA]:|
Organizational Unit Name (eg, section) [DEPARTAMENTO]:|
Common Name (eg, your name or your server's hostname) [cliente]:|
Name [SERVIDOR]:|
Email Address [soporte@itekuador.ec]:|
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:|
An optional company name []:|
Using configuration from /etc/openvpn/openssl-1.0.0.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'EC'
stateOrProvinceName :PRINTABLE:'PROV'
localityName :PRINTABLE:'CIUDAD'
organizationName :PRINTABLE:'EMPRESA'
organizationalUnitName:PRINTABLE:'DEPARTAMENTO'
commonName :PRINTABLE:'cliente'
name :PRINTABLE:'SERVIDOR'
emailAddress :IA5STRING:'soporte@itekuador.ec'
Certificate is to be certified until Mar 6 06:24:49 2026 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
Empecemos:
Nos conectamos a nuestro servidor que tiene OpenVPN con SSH Secure Shell.
Procedemos a ejecutar los siguientes comandos:
#cd /etc/openvpn/
#source ./vars
NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/keys
#sh /usr/share/easy-rsa/2.0/build-key cliente
Generating a 2048 bit RSA private key
.............................................................................+++
writing new private key to 'cliente.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [EC]:|
State or Province Name (full name) [PROV]:|
Locality Name (eg, city) [CIUDAD]:|
Organization Name (eg, company) [EMPRESA]:|
Organizational Unit Name (eg, section) [DEPARTAMENTO]:|
Common Name (eg, your name or your server's hostname) [cliente]:|
Name [SERVIDOR]:|
Email Address [soporte@itekuador.ec]:|
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:|
An optional company name []:|
Using configuration from /etc/openvpn/openssl-1.0.0.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'EC'
stateOrProvinceName :PRINTABLE:'PROV'
localityName :PRINTABLE:'CIUDAD'
organizationName :PRINTABLE:'EMPRESA'
organizationalUnitName:PRINTABLE:'DEPARTAMENTO'
commonName :PRINTABLE:'cliente'
name :PRINTABLE:'SERVIDOR'
emailAddress :IA5STRING:'soporte@itekuador.ec'
Certificate is to be certified until Mar 6 06:24:49 2026 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
Nota: En el tercer comando cliente sería el nombre del usuario o dispositivo que llevaría el certificado.
Una vez realizado esto ya deberíamos tener nuestro certificado creado dentro del directorio /etc/openvpn/keys
Para tenerlo en nuestro computador y transferir a cualquier equipo que se necesite conectar a nuestro OpenVPN, sin salir del SSH Secure Shell debemos dar clic en el icono en forma de carpeta en la parte superior, esto nos abrirá una nueva ventana compartida entre nuestro computador y el servidor OpenVPN.
Luego en la barra de dirección derecha escribimos la ruta /etc/openvpn/keys y presionamos enter, esto nos mostrará el contenido del directorio.
Como último paso del lado izquierdo nos ubicamos en la carpeta de nuestro computador donde queremos pasar los archivos y del lado derecho seleccionamos los archivos necesarios (ca.crt, cliente.crt, cliente.key) y es cuestión de arrastrarlos hasta el lado izquierdo.
Con esto ya tenemos los 3 archivos fundamentales para conectarte a tu OpenVPN, en otras de mis publicaciones te mostraré como configurar tus clientes.
Ahora procedemos a lo contrario, que pasa si uno de tus certificados cayo en malas manos o simplemente ya no necesitas que un certificado siga siendo usado.
Para esto necesitamos nuevamente de SSH Secure Shell, cabe mencionar que para realizar esto debemos estar en el directorio de openvpn, por lo tanto lo primero será:
#cd /etc/openvpn
#source ./vars
NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/keys
#sh /usr/share/easy-rsa/2.0/revoke-full cliente
Using configuration from /etc/openvpn/openssl-1.0.0.cnf
Revoking Certificate 04.
Data Base Updated
Using configuration from /etc/openvpn/openssl-1.0.0.cnf
cliente.crt: C = EC, ST = PROV, L = CIUDAD, O = EMPRESA, OU = DEPARTAMENTO, CN = cliente, name = SERVIDOR, emailAddress = soporte@itekuador.ec
error 23 at 0 depth lookup:certificate revoked
Nota: Cabe indicar que cliente sería el nombre del certificado al momento de crearlo.
En caso de no saber el nombre del certificado a revocar no te preocupes, lo puedes saber de la siguiente forma:
#cat /etc/openvpn/keys/index.txt
Este comando te mostrará todos los certificados generados busca el nombre que esta junto a CN=cliente, en donde cliente sería el nombre del certificado.
También en este archivo podemos ver que certificado esta permitido y cual esta revocado, al inicio de cada linea habrá una V o una R donde V son Validos y R revocados o no permitidos para conexión.
Con esto ya podemos generar y revocar certificados en nuestro OpenVPN.
Cualquier duda por favor deja tu comentario, si necesitas ayuda con otro tema de igual forma coméntalo.Espero te haya se servido de mucho, si está a tu alcance te agradeceré enormemente que le des clic a cualquier anuncio en esta página o una contribución en donar para seguir publicando.
Comentarios
Publicar un comentario