Si, Apache2 en 2019, y no es troleo. Teniendo una empresa en la que se requiere usar Apache pues el hosting donde está su sitio no les permite usar otro servidor HTTP, me dí a la tarea de estudiarme la configuración este muchachón, que desde 2012, no lo uso, en favor de Nginx.
Aquí vamos!
Se debía montar un sitio web en Apache2 con TLS 1.2[certificado autofirmado, pues no tienen acceso a Let’s Encrypt] o superior, habilitarle el HTTP2 y el cifrado de datos mediante parámetros DH.
Arranqué con una configuración de Apache 2.2, que como todo lo de Apache cuando cambia de versión, no funciona. Modificando y editando como todo un campeón, llegué a esto:
nano /etc/apache2/sites-available/web.conf
<VirtualHost *:80>
    ServerName web.inutil.cu
    Redirect / https://web.inutil.cu/
</VirtualHost>
<VirtualHost *:443>
  ServerName web.inutil.cu
  ServerAlias web.inutil.cu
  DocumentRoot /srv/web-inutil.cu
  <Directory /srv/web-inutil.cu>
      DirectoryIndex index.php index.html
      AllowOverride All
      Options Indexes FollowSymLinks Includes ExecCGI
      Require all granted
  </Directory>
  SSLEngine on
  SSLOpenSSLConfCmd DHParameters /etc/apache2/ssl/dhparam.pem
  SSLCertificateFile /etc/apache2/ssl/inutil.crt
  SSLCertificateKeyFile /etc/apache2/ssl/inutil.key
  SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
  Header always set X-Frame-Options DENY
  Header always set X-Content-Type-Options nosniff
  SSLCompression off
  SSLSessionTickets Off
  SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
  Protocols h2 h2c http/1.1
  ProtocolsHonorOrder Off
  SSLHonorCipherOrder on
  ErrorLog /var/log/apache2/inutil-error.log
  LogLevel warn
  CustomLog /var/log/apache2/inutil-access.log combined
</VirtualHost>
Ahora bien. Creamos los certificados en /etc/apache2/ssl:
mkdir /etc/apache2/ssl openssl dhparam 2048 -out > /etc/apache2/ssl/dhparam.pem openssl genrsa -out /etc/apache2/ssl/inutil.key 4096 openssl req -out /etc/apache2/ssl/inutil.csr -key /etc/apache2/ssl/inutil.key -new -sha256 openssl x509 -req -days 3650 -in /etc/apache2/ssl/inutil.csr -signkey /etc/apache2/ssl/cmsimple.key -out /etc/apache2/ssl/inutil.crt -sha512
Habilitamos los módulos necesarios:
a2enmod ssl a2enmod http2 a2enmod headers a2enmod rewrite
Habilitamos el sitio:
a2ensite web.conf
Y reiniciamos Apache2:
/etc/init.d/apache2 restart
Por el momento eso es todo y funciona muy bien, me queda estudiar como darle un tilín más de seguridad, pero eso es para otro día, no muy lejano. Como siempre sigo, espero les sirva, y un saludo a los que nos leen.




Genial…
También llevo un tiempo sin usarlo, aunque siempre fui fan del muchachon… Nginx hoy día cumple esta tarea a las mil maravillas…
Es que hoy dia nginx es nginx y sin nginx no hay nginx, ya lo decia el filosofo
Jajajajajaaj
Asi mismo
Poco a poco Apache a ido decreciendo en su utilización. Si bien, en un principio Nginx era utilizado por cuestiones de rendimiento, hoy día ya no quedan muchos apartados dónde Apache lo supere. Yo suelo utilizar Apache por cuestiones practicas (configuración) más que nada.
Saludos.