Puerto https adicional al tradicional 443 en Apache sobre Linux

Este procedimiento detalla cómo poner un puerto https adicional en Apache (sobre Linux), considerando que originalmente estamos usando el puerto 443 para este fin, y queremos usar el puerto 4443 apuntando a otro directorio root, con el mismo certificado ssl.
 Puerto https adicional

Certificado SSL

1) Se crea la carpeta root del nuevo puerto https adicional. Por ejemplo /var/www2, y se le dan los premisos de acceso
     mkdir /var/www2
     chown -R ubuntu:ubuntu /var/www2
     chmod -R 777 /var/www2
2) Se agrega el puerto el puerto https adicional /etc/apaches/ports.conf, por ejemplo el puerto 4443
Listen 80
Listen 443
Listen 4443
 
<IfModule ssl_module>
        Listen 443
        Listen 4443
</IfModule>
 
<IfModule mod_gnutls.c>
        Listen 443
        Listen 4443
</IfModule>
3) En /etc/apache2/sites-enabled/000-default.conf se agrega el virtual host al puerto https adicional, con el nuevo root
<VirtualHost *:4443>
 
        ServerName dominio.com.co
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www2/
 
        ErrorLog ${APACHE_LOG_DIR}/error_sms.log
        CustomLog ${APACHE_LOG_DIR}/access_sms.log combined
 
        #SSL configuration:
 
        SSLEngine on
        SSLCertificateKeyFile /etc/ssl/ssl.key/dominio_com_co.key
        SSLCertificateFile /etc/ssl/ssl.crt/www_dominio_com_co.crt
        SSLCertificateChainFile /etc/ssl/ssl.crt/www_dominio_com_co.ca-bundle
 
  
</VirtualHost>
4) En el archivo /etc/apache2/sites-available/default-ssl.conf
Dentro de  <IfModule mod_ssl.c> se agrega el default para el nuevo puerto
 <VirtualHost _default_:4443>
                ServerAdmin webmaster@localhost
 
                DocumentRoot /var/www2
 
                ErrorLog ${APACHE_LOG_DIR}/error.log
                CustomLog ${APACHE_LOG_DIR}/access.log combined
 
                SSLEngine on
 
                SSLCertificateFile      /etc/ssl/certs/ssl-cert-snakeoil.pem
                SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
 
              <FilesMatch «\.(cgi|shtml|phtml|php)$»>
                                SSLOptions +StdEnvVars
                </FilesMatch>
                <Directory /usr/lib/cgi-bin>
                                SSLOptions +StdEnvVars
                </Directory>
 
                BrowserMatch «MSIE [2-6]» \
 
                                nokeepalive ssl-unclean-shutdown \
                                downgrade-1.0 force-response-1.0
                # MSIE 7 and newer should be able to use keepalive
                BrowserMatch «MSIE [17-9]» ssl-unclean-shutdown
 
        </VirtualHost>
5) Se agrega en /etc/apache2/apache2.conf  los permisos para la carpeta nueva
<Directory /var/www2/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>
6) En el firewall del servidor se debe dar acceso al puerto 4443 (iptables, firewall de Windows o Security Group de Amazon EC2)
7) El nuevo puerto se llama desde el navegador con https://dominio.com.co:4443 
Para verificar si el puerto está debidamente abierto, debe mostrarse este comando:
# ss -lnt
LISTEN     0      128                                   :::4443                                 :::*
Esto puede ser útil cuando no queremos que ciertos procesos sean vistos desde el puerto https de producción, o se estos procesos se están afectando por reglas de direccionamiento del sitio principal.
Este es un servicio de divulgación de conocimiento de ITSoftware SAS.

Deja un comentario

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.