GNU/Linux >> Tutoriales Linux >  >> Linux

Certificados maestros autofirmados en Windows y Linux

En el mundo de TI, es fundamental proteger las aplicaciones y los dominios de su infraestructura. Y para lograr el nivel ideal de seguridad, necesita un certificado SSL. Pero, ¿cómo se obtiene un certificado SSL? Una de las formas más sencillas y rentables es crear certificados autofirmados en sus sistemas.

Los certificados autofirmados son certificados de clave pública que los usuarios pueden generar ellos mismos en lugar de que los emita una autoridad de certificación. Y en este tutorial, aprenderá cómo generar un certificado autofirmado en máquinas Windows y Linux (gratis).

¡Siga leyendo y comience a proteger sus aplicaciones e infraestructura!

Requisitos previos

Este tutorial será una demostración práctica. Si desea seguirnos, asegúrese de tener lo siguiente:

  • Un dispositivo Windows 10+.
  • Una máquina con Ubuntu 14.04.4 LTS como mínimo:este tutorial usa Ubuntu 20.04.4 LTS.
  • Apache instalado en máquinas Windows y Linux.
  • OpenSSL instalado en su máquina con Windows:este tutorial utiliza OpenSSL 3.0.3 Light (32 bits).

Generación de certificados autofirmados en Ubuntu

La forma más sencilla de probar el certificado autofirmado es en un servidor web, y uno de los servidores web más utilizados es Apache. Entonces, comencemos este tutorial configurando el servidor Apache ya instalado en la máquina Ubuntu.

1. SSH en su Ubuntu VM usando su cliente SSH favorito.

2. Ejecute el siguiente comando de actualización apt para asegurarse de que Ubuntu tenga todas las fuentes de paquetes más recientes.

sudo apt update 

3. A continuación, abra su navegador web favorito, vaya a :80 , y verá que la página de inicio de Apache se abre solo en el puerto HTTP (no seguro).

4. Ahora, ejecute cada comando a continuación para crear un directorio llamado ~/certificates y cambie a ese directorio donde almacenará los certificados.

mkdir ~/certificates
cd ~/certificates

5. A continuación, ejecute el siguiente comando openssl para generar una solicitud de firma de certificado (CSR) y una clave privada.

openssl req -x509 -newkey rsa:4096 -keyout apache.key -out apache.crt -days 365 -nodes

Una vez que ejecute el comando, ingrese los detalles, como se muestra a continuación.

Seguridad del servidor Apache con certificado SSL en Ubuntu

Después de generar sus certificados, deberá configurar el servidor Apache para usar los certificados. Pero primero, necesita un directorio dedicado para guardar su certificado. Habilitará el módulo SSL más tarde y probará si los certificados funcionan para proteger su servidor Apache.

1. Ejecute los siguientes comandos para crear un directorio (/etc/apache2/ssl) y mueva los certificados del directorio ~/certificates/ al directorio /etc/apache2/ssl.

mkdir /etc/apache2/ssl
mv ~/certificates/* /etc/apache2/ssl/.

2. Abra el archivo de configuración del sitio SSL Apache predeterminado (/etc/apache2/sites-disponible/default-ssl.conf) y agregue las siguientes líneas. Asegúrese de reemplazar con el nombre real de su servidor.

En el siguiente código, especifica la ubicación (archivo y clave de certificado) donde copió previamente sus certificados.

ServerName 
SSLCertificateFile    /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
ProxyPreserveHost On

3. Ahora, ejecute cada comando a continuación para habilitar el módulo SSL, habilite el sitio que modificó (paso cuatro) y reinicie el servicio Apache.

# Enable the SSL module so that you can work with SSL connections.
sudo a2enmod ssl proxy proxy_http proxy_balancer
# Enable the site you modified (step four)
sudo a2ensite default-ssl.conf
# Restart the Apache service
sudo service apache2 restart

4. Finalmente, navegue nuevamente a su servidor Apache. Pero esta vez, usando HTTPS, como se muestra a continuación.

Como puede ver, Apache se está abriendo con éxito con conexiones SSL en un puerto HTTPS. No se preocupe si ve un símbolo de advertencia que muestra el mensaje No seguro. Recibirá esa advertencia ya que está utilizando un certificado autofirmado (creado por usted) y no por la autoridad de certificación.

Haga clic en Proceder a (inseguro) para continuar accediendo al servidor Apache.

¿Ve la misma página que se muestra a continuación? ¡Felicidades! Ha protegido con éxito el servidor Apache con su certificado autofirmado.

Generando un Certificado SSL en Windows

Anteriormente, protegió un servidor Apache alojado en una máquina Ubuntu mediante un certificado autofirmado. De la misma manera, también puede proteger el servidor Apache en un sistema operativo Windows.

Para asegurar su servidor Apache en Windows:

1. Abra el archivo de configuración de Apache (httpd.conf) en C:\Apache24\conf ubicación y elimine el comentario de la siguiente línea.

La siguiente línea habilita el módulo SSL en máquinas Windows y permite que Apache funcione con el puerto HTTPS.

LoadModule rewrite_module modules/mod_rewrite.so

2. A continuación, abra PowerShell como administrador y ejecute el siguiente comando openssl para generar una solicitud de firma de certificado (CSR) y una clave privada.

openssl req -x509 -newkey rsa:4096 -keyout Apache.key -out Apache.crt -days 365 -nodes

Después de ejecutar el comando, ingrese los detalles de su certificado, como se muestra a continuación.

3. Navegue hasta el directorio bin de instalación de OpenSSL (C:\ProgramFiles\OpenSSL-Win64\bin ) y verifique el certificado y la clave de Apache a continuación.

Configuración del servidor Apache para usar certificados SSL

Acaba de generar su certificado y clave para proteger la conexión del servidor Apache. Pero al igual que con Ubuntu, necesita una carpeta dedicada para guardar su certificado y clave y habilitar el módulo SSL.

1. Copie su archivo de certificado SSL (apache.crt ) y archivo de clave privada (apache.key ) a la C:\Apache24\conf carpeta.

2. Edite el archivo de configuración de Apache SSL (C:/Apache24/conf/httpd.conf ), y agregue las siguientes líneas o descomente si ya está presente.

Las siguientes líneas habilitan el módulo SSL y permiten que Apache funcione en el puerto HTTPS.

LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

3. Ahora, edite el archivo Apache SSL (C:/Apache24/conf/extra/httpd-ssl.conf ) y agregue las siguientes líneas. Este archivo será llamado por httpd.conf archivo internamente como se define en el httpd.conf archivo (Incluye conf/extra/httpd-ssl.conf).

SSLCertificateFile "C:\Apache24\conf\apache.crt"
SSLCertificateKeyFile "C:\Apache24\conf\apache.key"

4. Ejecute los siguientes comandos en PowerShell para navegar a la carpeta bin de instalación de Apache e iniciar el servicio de Apache.

# Change the working directory
cd C:\ProgramFiles\OpenSSL-Win64\bin
# Start the Apache service
./httpd.exe

5. Finalmente, navegue a https://localhost para verificar el servidor Apache.

Debería ver el mismo mensaje (¡Funciona!) en la página, que confirma que el servidor Apache se está ejecutando con un certificado autofirmado en una máquina con Windows.

Conclusión

En este tutorial, aprendió a configurar un servidor web Apache en los sistemas operativos Ubuntu y Windows y a verificar que puede acceder a una instancia de Apache de forma segura.

Ahora, ¿cómo planea mejorar su juego con Apache? ¿Quizás automatizar las implementaciones web? ¿O crear una canalización de CD de CI de Jenkins para mejorar su proceso de desarrollo de software?


Linux
  1. Domina el comando ls de Linux

  2. 10 RAZONES PARA CAMBIAR WINDOWS 10 A LINUX

  3. Alojamiento Linux vs Windows

  4. Uso de SNI para alojar varios certificados SSL en Apache

  5. Cómo instalar Apache 2 con SSL en Linux (con mod_ssl, openssl)

Cambiar de Windows a Linux

Domina la línea de comandos de Linux

Cómo ejecutar Windows 95 en Linux

Cómo generar certificados SSL autofirmados usando OpenSSL

Instalar certificados SSL en un servidor Windows

Seguridad de Linux frente a Windows