Configuración de un reverse-proxy

Tomcat escucha en http en el puerto 8080. Para pasar a https en un puerto estándar, elegimos poner delante del Tomcat un reverse-proxy apache.

La configuración de este revertse-proxy es independiente de la de la servlet PWM a la que da acceso (o casi1), por lo cual la podemos hacer antes o después.

Hacerla antes tiene la ventaja de seguir trabajando con intercambios seguros.

Instalamos apache:

aptitude install apache2

Activamos ssl y reiniciamos apache:

a2enmod ssl
service apache2 restart

Generamos una solicitud de certificado ssl para el dominio identidad.interior.edu.uy y su correspondiente clave privada, como indicado en los procedimientos de la CA. Solicitamos la firma de dicha solicitud, sacamos la passphrase a la clave privadas, e instalamos en el servidor los archivos de certificado y clave, que configuramos más adelante en el VrtualHost.

Creamos en /etc/apache2/sites-available un archivo se VirtualHost que se llame identidad.interior.edu.uy-revpxy-ssl.conf, copiando el default-ssl y modificando:

<VirtualHost *:80>
  ServerName identidad.interior.edu.uy
  ServerAlias identidad.interior.udelar.edu.uy www.identidad.interior.edu.uy www.identidad.interior.udelar.edu.uy
  ServerAdmin soporte@interior.edu.uy

  Redirect "/" "https://identidad.interior.edu.uy/"  
</VirtualHost>

<IfModule mod_ssl.c>
  <VirtualHost *:443>
    ServerName identidad.interior.edu.uy
    ServerAlias identidad.interior.udelar.edu.uy www.identidad.interior.edu.uy www.identidad.interior.udelar.edu.uy
    ServerAdmin soporte@interior.edu.uy

    Redirect "/" "https://identidad.interior.edu.uy/pwm"  

    <If "%{HTTP_HOST} != 'identidad.interior.edu.uy'">
      Redirect "/" "http://identidad.interior.edu.uy/pwm" 
    </If>

    <Location /pwm>
      ProxyPass http://identidad.interior.edu.uy:8080/pwm
      ProxyPassReverse http://identidad.interior.edu.uy:8080/pwm
    </Location>

     ....

    #SSLCertificateFile     /etc/ssl/certs/ssl-cert-snakeoil.pem
    #SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
    SSLCertificateFile      /etc/ssl/certs/identidad.interior.edu.uy-cert.pem
    SSLCertificateKeyFile   /etc/ssl/private/identidad.interior.edu.uy-key.pem

     ....

  </VirtualHost>
</IfModule>

Activamos el VirtualHost creado y desactivamos el Virtual por omisión:

a2ensite identidad.interior.edu.uy-revpxy-ssl.conf
a2dissite 000-default.conf
service apache2 reload

El acceso al servicio de registro PWM queda entonces activado en la dirección:

[1] es la presencia de este reverse proxy que había planteado problemas para la distinción del llamado al re-captcha en http o https.