Skip to content

danimrprofe/apache

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 

Repository files navigation

Configuracion HTTPS

La idea es configurar un servidor web que soporte SSL. Para realizar la configuración necesitaremos tener instalado el paquete OpenSSL. Openssl es un kit de herramientas para trabajar con TLS y SSL.

Para ello seguiremos los siguientes pasos:

  • Crear una clave privada lo suficientemente fuerte
  • Crear una solicitud CSR y enviarla a una CA
  • Instalar el certificado que nos devuelva la CA en nuestro servidor web

Creacion de certificado digital para nuestro site

Crear claves RSA de 2048 bit. La clave se guarde en formato PEM, que es un formato de solo texto, para poder ser enviada a través de web.

sudo openssl genrsa -out clave.key 2048

Generar una solicitud de certificado CSR, rellenando los datos. Es un petición formal pidiendo a la CA que nos firme el certificado.

sudo openssl req -new -key clave.key -out solicitud.csr

Esta solicitud de certificado creada, la podría enviar a una autoridad de certificación para generase el certificado crt.

Como lo que vamos a hacer es instalar un servidor para nuestro propio uso, no hace falta ir a una CA para que nos certifique.

En este caso lo firmamos nosotros, es decir creamos un certificado auto firmado usando la clave privada.

sudo openssl x509 -req -days 365 -in solicitud.csr -signkey clave.key -out certificado.crt

Lo siguiente que haremos es mover la clave y el certificado creados a los directorios que utiliza por defecto apache y configurar los permisos adecuados (se habrán creado en el directorio en el que estuviéramos al ejecutar los comandos anteriores).

sudo cp clave.key /etc/ssl/private/
sudo cp certificado.crt /etc/ssl/certs/
sudo chown root:ssl-cert /etc/ssl/private/clave.key
sudo chmod 640 /etc/ssl/private/clave.key
sudo chown root:root /etc/ssl/certs/certificado.crt 

Conversión del certificado

Las claves y certificados se pueden guardar en varios formatos diferentes, por lo que podemos convertir entre uno y otro formato. Agrupamos en un mismo archivo la clave y el certificado:

cat clave.key certificado.crt > certificadoyclave.pem
cp certificadoyclave.pem /etc/ssl/private/

Modificacion del archivo de configuracion del site

Modificaremos el site, comprobando que dentro de virtualhost tenemos las siguientes directivas:

SSLEngine on
SSLCertificateFile /etc/ssl/private/certificadoyclave.pem

Hay que comentar la opción SSLCertificateKeyFile para que no afecte.

En la directiva Directory /var/www/html debe de aparecer la siguiente configuracion (apache2.conf)

<Directory /var/www/>
SSLRequireSSL
...
</Directory>

Habilitar mod Apache SSL

Habilitamos el mod

sudo a2enmod ssl

Habilitar el site SSL

sudo a2ensite default-ssl

Reiniciamos servidor

sudo systemctl restart apache2

Redirección HTTP a HTTPS

El mecanismo que podemos utilizar es el de editar el site que tengamos configurado para HTTP (normalmente el de defecto) y agregar la línea:

<VirtualHost *:80>
        ServerName moodle.midominio.com
        ServerAdmin webmaster@midominio.com
        DocumentRoot /var/www/html
        Redirect / https://moodle.midominio.com
</VirtualHost>

Cambiando la IP por el nombre de dominio de nuestra página. A continuación reiniciar el servidor

sudo systemctl restart apache2

Problemas con el cambio de sites de HTTP a HTTPS

Puede pasar que al cambiar el acceso de un tipo a otro, tengamos problemas como que la página no carga o no carga del todo. Para ello, se pueden hacer algunas modificaciones.

Moodle

Cambiar la IP por el nombre de dominio en el archivo config.php

$CFG->wwwroot   = 'https://dominio.com';

Wordpress

Modificar el archivo wp-config.php y agregar/cambiar las siguientes opciones:

define('WP_HOME','https://dominio.com');
define('WP_SITEURL','https://dominio.com');
define('FORCE_SSL_ADMIN', true);

About

apache config files

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published