En la guía de hoy, discutiremos cómo generar un certificado SSL autofirmado en Linux y también cómo implementarlos en Apache. SSL es cada vez más importante a medida que Internet se vuelve más popular. Dado que los certificados Let’s Encrypt gratuitos se están convirtiendo en un producto que cualquiera puede usar, no hay razón para que nadie no use SSL, sin mencionar los beneficios de clasificación de búsqueda y el hecho de que los navegadores y motores de búsqueda confiarán en su sitio.
Sin embargo, también puede generar su propio certificado SSL autofirmado para uso privado en su servidor. Una gran razón para hacer esto es el cifrado. Si bien su certificado personal no significa nada para los navegadores, y los visitantes recibirán un mensaje de advertencia si visitan su sitio directamente, al menos puede estar seguro de que está protegido contra ataques de «intermediario». Un certificado autofirmado es un buen primer paso cuando solo está probando cosas en su servidor y tal vez ni siquiera tenga un nombre de dominio todavía.
Comencemos con nuestro procedimiento paso a paso en cómo crear un certificado SSL autofirmado en Linux.
Tabla de contenido
Paso 1: Cree un par de claves RSA
El primer paso para generar su propio certificado SSL autofirmado es utilizar el paquete «openssl» en Linux / CentOS para crear un par de claves RSA. Para hacer esto, asegúrese de tener el paquete instalado. Si no es así, instálelo con este comando:
sudo yum install openssl
Lo más probable es que ya lo tenga disponible en su sistema; ahora debería instalarse independientemente. Una vez que se haya confirmado que el paquete está instalado en su sistema, genere el par de claves con el siguiente comando:
openssl genrsa -des3 -passout pass:x -out keypair.key 2048
Este comando usa cifrado de 2048 bits y genera un archivo llamado keypair.key
, como se muestra aquí:
Como puede ver, la clave ha sido generada y colocada en el directorio actual.
Paso 2: Extraiga la clave privada en el Carpeta «httpd»
La carpeta /etc/httpd
es donde el sistema operativo guarda todos los elementos importantes relacionados con SSL. Primero, creemos una nueva carpeta para almacenar todos nuestros archivos relacionado con nuestra clave privada:
sudo mkdir /etc/httpd/httpscertificate
Llamamos a la carpeta httpscertificate
y nos referiremos a ella por ese nombre para todos los demás ejemplos de la línea de comandos. Puede nombrar la carpeta como desee.
Para extraer la clave privada del archivo de par de claves que acabamos de crear, escriba fo A continuación:
openssl rsa -passin pass:x -in keypair.key -out /etc/httpd/httpscertificate/012.345.678.90.key
Reemplace la sección en negrita con la dirección IP de su propio servidor. O si puede acceder a su sitio con un nombre de dominio, también puede usarlo.
Esto creará un archivo .key
en la carpeta que que acabamos de crear. Una vez finalizado este proceso, podemos eliminar el archivo de par de claves original:
rm keypair.key
Paso 3: Crear un archivo de «Solicitud de firma de certificado» (CSR)
Con la clave, podemos crear un archivo .csr
especial que podemos firmar nosotros mismos o enviar a una «Autoridad de certificación». Está en un formato estandarizado y se puede generar fácilmente con nuestra clave del paso anterior. Para crearlo, escriba el siguiente comando:
openssl req -new -key /etc/httpd/httpscertificate/012.345.678.90.key -out /etc/httpd/httpscertificate/012.345.678.90.csr
Nuevamente, reemplace los elementos en negrita con la dirección IP o el nombre de dominio que eligió en el paso 2. Cuando ejecute este comando, la herramienta le pedirá parte de su información personal, como su ubicación y el nombre de la organización:
Una CA (abreviatura de Autoridad de certificación) puede usar estos detalles para verificar que usted es realmente quien dice ser. Intente completar los campos con tanta información como pueda.
Una vez que haya terminado de ingresar estos detalles, la herramienta terminará su trabajo y colocará un .csr
en el directorio que creamos para este propósito.
Paso 4: Crear el archivo «.crt» del certificado
Con el CSR, podemos crear el archivo de certificado final como sigue. Ahora usaremos nuestros archivos .csr
y .key
para crear nuestro archivo .crt
:
Esto crea un archivo .crt
en la ubicación con todos nuestros otros archivos. Ahora sabemos cómo generar nuestro certificado SSL autofirmado. Aquí hay una captura de pantalla de los archivos finales en nuestra carpeta de seguridad:
Ahora necesitamos decirle a Apache dónde están estos archivos.
Paso 5: Configurar Apache para usar los archivos
Todo lo que tenemos que hacer ahora es mostrarle a Apache dónde están nuestros certificados autofirmados generados. Primero, necesitamos instalar el paquete mod_ssl
con el comando:
sudo yum install mod_ssl
Una vez hecho esto, esto colocará un ssl.conf
archivo dentro de la carpeta /etc/httpd/conf.d/
. Necesitamos modificar este archivo predeterminado. Utilice su editor de texto preferido:
sudo vi /etc/httpd/conf.d/ssl.conf
Ahora desplácese hacia abajo hasta encontrar las líneas que comienzan con:
SSLCertificateFileSSL CertificateKeyFile
Cambie las rutas predeterminadas con las rutas al archivo de certificado y al archivo de clave respectivamente, como se muestra aquí:
Guarde sus cambios. Ahora simplemente reinicie Apache con:
sudo apachectl restart
¡Y listo! Cuando Apache se reinicie, se configurará para permitir conexiones SSL mediante el uso de certificados SSL autofirmados generados.
Cuando se conecte a su dirección IP a través de HTTPS la próxima vez, se le advertirá que no es un certificado de confianza:
Está bien. ¡Lo sabemos desde que lo firmamos nosotros mismos! Simplemente continúe y lo llevará al sitio web real:
Aquí puede ver que está usando el certificado que creamos. No es de mucha utilidad para cualquier otra persona que visite su sitio, ya que no pueden verificar su identidad. Pero sabes que es seguro y además está encriptado. ¡Ningún hombre en el medio ataca!
Ahora sabe cómo generar sus propios certificados SSL autofirmados e implementarlos en su servidor web Apache.
Si es uno de nuestros Managed Clientes de hosting VPS, podemos hacer todo esto por usted sin costo adicional. Simplemente comuníquese con nuestros administradores de sistemas y ellos responderán a su solicitud lo antes posible.