Superposición del sitio

Configurar HTTPS para apache y Symfony2 en Centos 7

Paso 1: Agregar Puerto HTTPS al Cortafuegos

Verificamos el estado del Cortafuegos, en caso de estar inactivo puedes cambiar «status» por «start» en el siguiente comando para activarlo:

[code language=»bash»]
systemctl status firewalld
output
Active: active (running)
[/code]

Con el siguiente comando puedes agregar de manera permanente el puerto 443 utilizado por defecto para conexiones HTTPS.

[code language=»bash»]
firewall-cmd –permanent –zone=public –add-port=443/tcp
output
success
[/code]

También debes utilizar el siguiente comando con el cual puedes agregar de manera permanente el servicio HTTPS.

[code language=»bash»]
firewall-cmd –permanent –zone=public –add-service=https
output
success
[/code]

Luego recarga las reglas del firewall con lo cual se aplicara la configuración permanente en tiempo de ejecución.

[code language=»bash»]
firewall-cmd –reload
output
success
[/code]

verificamos que se agrego el puerto 443 y el servicio https.

[code language=»bash»]
firewall-cmd –zone=public –list-ports
output
80/tcp 30300/tcp 25/tcp 20/tcp 30309/tcp 21/tcp 8082/tcp 443/tcp
[/code]

verificamos que se agrego el servicio HTTPS.

[code language=»bash»]
firewall-cmd –zone=public –list-services
output
ftp dhcpv6-client smtp ssh mysql https
[/code]

En caso de que en la lista no aparezcan los servicios y puertos ingresados, repite de nuevo el proceso y verifica que las salidas correspondan «success».

Paso 2: Permitimos el puerto 443 para HTTPS en SELINUX

Si tienes habilitado SELinux lo cual debería ser lo ideal, debes verificar si el puerto 443 se encuentra definido en el contexto de seguridad para la etiqueta “httpd_port_t” lo cual es así por defecto, pero no esta demás verificar:

[code language=»bash»]
semanage port -l | grep 443
output
http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000
[/code]

Paso 3: Configurar el certificado

Para configurar el certificado, que en nuestro caso se trata de uno autofirmado, el cual realizamos en un tutorial anterior, primero debemos asegurarnos que el modulo mod_ssl de Apache que brinda soporte para el cifrado SSL esté instalado en el servidor.

[code language=»bash»]
yum list installed | grep mod_ssl
[/code]

Si no se encuentra instalado, podemos instalarlo con el siguiente comando:

[code language=»bash»]
yum install mod_ssl
[/code]

El módulo ssl es cargado automáticamente y se encuentra definida en una directiva LoadModule en el fichero de configuración de apache.

[code language=»bash»]
nano /etc/httpd/conf/httpd.conf
output
Include conf.modules.d/*.conf
[/code]

para comenzar con la configuración debe abrir el siguiente fichero:

[code language=»bash»]
nano /etc/httpd/conf.d/ssl.conf
[/code]

En el fichero «ssl.conf» es muy extenso pero lo que debemos modificar y agregar son las siguientes lineas.

[code language=»bash»]

ServerName :443

SSLEngine on
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/pki/tls/private/apache-selfsigned.key

# Establecer variables de entorno directamente desde el archivo de
# configuración de ssl.conf o httpd.conf es recomendado, con lo cual
# no hay que hacerlo en ningún archivo de configuración de Symfony
SetEnv SYMFONY__DATABASE__USER «»
SetEnv SYMFONY__DATABASE__PASSWORD «»

#SSLProtocol all -SSLv2 -SSLv3
SSLProtocol -All +TLSv1 +TLSv1.1 +TLSv1.2

#SSLCipherSuite HIGH:3DES:!aNULL:!MD5:!SEED:!IDEA
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW

Directorio que contiene el Proyecto Symfony 2
DocumentRoot «/var/www/html//web»

DirectoryIndex app.php

SSLOptions +StdEnvVars

AllowOverride None
Allow from All

#Configuración «IfModule» para abrir proyectos realizados Symofny 2

Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]

[/code]

Nota: Las lineas comentadas con «#» almohadilla son las reemplazadas en el fichero original.

Reiniciamos el servidor apache:

[code language=»bash»]
systemctl restart httpd
[/code]

Por ultimo y no menos importante, no olvidar abrir el puerto 443 en el Router.

Al intentar abrir por primera vez nuestra pagina web recibirás el siguiente aviso, solo oprime el botón «continuar de todos modos» e instala el certificado en tu navegador.

zimbra-ssl-autofirmado-web012

Nota: Este aviso es normal, ya que el certificado es propio y el navegador no tiene instalado este certificado raíz, con lo cual no podrá verificar que las paginas web devueltas por el servidor sean emitidas por una autoridad de certificación reconocida, indicando que es inseguro simplemente por que no sabe a quien pertenece, lo que no quiere decir que no sea cifrada la información que viaja a través de su comunicación con el servidor.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *