RequestTracker sotto HTTPS

Creato il 25 giugno 2013 da Michelepinassi @michele_pinassi

Qualche giorno fa ho descritto il sistema di gestione RequestTracker della BestPractical.

Avendo la veloce guida riscosso un discreto successo, continuo con qualche altro articolo tecnico. Oggi vi spiegherò come attivare RequestTracker sotto SSL, ovvero connessione sicura HTTPS.

Per prima cosa installiamo le librerie necessarie:

apt-get install libssl-dev

e poi il modulo perl “Crypt::SSLeay”:

cpan Crypt::SSLeay

adesso impostiamo il server Apache2, abilitando il modulo mod_rewrite per forzare le connessioni HTTPS:

a2enmod rewrite

A questo punto dovreste preoccuparvi del certificato SSL. Le scelte sono due: self-signed oppure acquistato presso una qualche CA, come RapidSSL o Verisign.

Risolta la questione del certificato, passiamo alla configurazione del VirtualHost:

 AddDefaultCharset UTF-8
 DocumentRoot "/opt/rt4/share/html"
 RewriteEngine On
 RewriteCond %{HTTPS} off
 RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>

<VirtualHost tickets.unisi.it:443>
 AddDefaultCharset UTF-8
 DocumentRoot "/opt/rt4/share/html"

 <Location />
 Order allow,deny
 Allow from all

 SetHandler modperl
 PerlResponseHandler Plack::Handler::Apache2
 PerlSetVar psgi_app /opt/rt4/sbin/rt-server
 </Location>
 <Perl>
 use Plack::Handler::Apache2;
 Plack::Handler::Apache2->preload("/opt/rt4/sbin/rt-server");
 </Perl>

 SSLEngine on
 SSLCertificateFile /etc/apache2/ssl/mycert.pem
 SSLCertificateKeyFile /etc/apache2/ssl/mycert.key
 SSLCertificateChainFile /etc/apache2/ssl/mycert.chain.pem
</VirtualHost>

RT SSL

Le parti in grassetto evidenziano le righe della configurazione più importanti. Le prime dicono ad Apache2 che tutte le connessioni non https (RewriteCond %{HTTPS} off) devono essere “trasformate” in https (RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}).

Il secondo blocco è relativo alla configurazione del certificato SSL  per il VirtualHost in ascolto sulla porta 443 (http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html).

Per ultimo, dopo aver verificato che Apache2 HTTPD sia configurato correttamente (service apache2 restart), procediamo a modificare il nostro file /etc/aliases relativo alle code mettendo https al posto di http:

manutenzione: "|/opt/rt4/bin/rt-mailgate --queue Manutenzione --action correspond --url https://[myUrl]/"
manutenzione-comment: "|/opt/rt4/bin/rt-mailgate --queue Manutenzione --action comment --url https://[myUrl]/"

Per concludere verifichiamo aprendo il browser e visitando [myUrl]: si dovrebbe essere reindirizzati automaticamente verso connessione protetta “https”.