Con Apache

1 - Cargar mod_ssl

En primer lugar, simplemente descomente la siguiente línea en el archivo httpd.conf. Para modificar el archivo httpd.conf utilizaremos el editor de texto Nano.

El archivo httpd.conf se encuentra normalmente en: /etc/apache2/httpd.conf. Es recomendable hacer una copia del archivo httpd.conf por si frenamos algo.


mod_ssl

$ cd /etc/apache2/$ sudo cp httpd.conf httpd.conf.old$ sudo nano httpd.conf
Genérico

Busque la siguiente línea y descoméntela. En caso de que no esté seguro, los comentarios tienen un símbolo de almohadilla/guión ( # ) al principio - quítelo.


2 - Incluya el archivo httpd-ssl.conf

Mientras aún tenemos abierto el archivo httpd.conf, también necesitamos descomentar la línea que incluye el archivo httpd-ssl.conf.

 

3 - Añadir VirtualHost a httpd-ssl.conf

El último paso es configurar un nuevo host virtual que esté vinculado al puerto 443 (HTTPS). Ya hay un ejemplo de registro <VirtualHost> en el archivo httpd-ssl.conf. Te sugiero que primero lo elimines o lo comentes todo para que sólo tengas que pegar el código necesario en la parte inferior del archivo.

El archivo httpd-ssl.conf se encuentra normalmente en: /etc/apache2/conf/httpd-ssl.conf


Tendrás que abrir el archivo con Nano (puedes crear una copia antes por motivos de seguridad):

Añadir VirtualHost

$ cd /etc/apache2/extra$ sudo cp httpd-ssl.conf httpd-ssl.conf.old$ sudo nano httpd-ssl.conf
Genérico


Declarar VirtualHost

El primer paso es declarar un nuevo host virtual utilizando la directiva <VirtualHost>.

 

VirtualHost

<Host virtual *:443>

Configuración general del host virtual

A continuación, dentro de la directiva <VirtualHost>, declararemos algunas configuraciones básicas del host:

  • DocumentRoot: ruta absoluta a la raíz web del sitio
  • ServerName: el nombre de dominio completo (FQDN)
  • ErrorLog: ubicación del registro de errores
  • CustomLog: ubicación del registro de acceso

Activar SSL

Para habilitar el motor SSL en Apache simplemente añadimos poner la configuración a "on".

Activar SSL

#MotorSSL SwitchSSLEngine on
Genérico


Convertir .pfx en .crt y .key

Un .pfx (Personal Information Exchange Format) es un archivo que permite la transferencia de certificados y sus claves privadas, contiene el archivo de clave pública (archivo de certificado SSL) .crt y el archivo de clave privada asociado .key.

Para configurar nuestro Host Virtual, si tenemos un fichero pfx necesitaremos tratar la clave privada y el certificado.

Para extraer el certificado:

.crt

$ openssl pkcs12 -in [tuarchivo.pfx] -clcerts -nokeys -out [certificado.crt]

Para extraer la llave:

.clave

$ openssl pkcs12 -in [yourfile.pfx] -nocerts -out [keyfile-encrypted.key]

 

A veces es necesario tener un archivo .key sin encriptar para importar en algunos dispositivos. Probablemente no sea necesario mencionar que debes tener cuidado. Si guardas tu par de claves sin cifrar en algún lugar inseguro, cualquiera puede hacerse con ellas y suplantar, por ejemplo, a un sitio web o a una persona de tu empresa. Así que ten mucho cuidado cuando se trate de claves privadas.


.clave

openssl rsa -in [archivo-clave-cifrado.llave] -out [archivo-clave-descifrado.llave]

 

Especifique el certificado y la clave privada

Utilizando las rutas que he descrito al principio, indicaremos al motor SSL la ubicación del archivo de solicitud de certificado (CSR) y la clave privada del host (.key).

#Certificado del servidor:SSLCertificateFile "/private/etc/apache2/ssl/certificate.crt"
Genérico
#Clave privada del servidor:SSLCertificateKeyFile "/private/etc/apache2/ssl/keyfile-decrypted.key
Genérico


4 - Pruebe la configuración y reinicie Apache

$ sudo apachectl -t$ sudo apachectl restart
Genérico


Listo. Ahora está sirviendo su sitio web sobre HTTPS usando Apache.


Información relacionada: https://blackdiezone.net/2019/09/como-convertir-un-pfx-a-un-archivo-separado-key-crt/


Artículos relacionados:

Cómo instalar/actualizar el certificado SSL en el servidor donde está alojado neoCatalog

Acceder a neoCatalog desde una red externa (acceso a Internet)