Utilisation en HTTPS
La mise en place d'une connexion sécurisée HTTPS sur SquashTM peut se faire de deux façons : d'une part par la mise en place d'un reverse proxy ou d'autre part via un paramétrage dans SquashTM. L'option recommandée par Henix est la mise en place d'un reverse proxy.
Mandataire inverse (Reverse proxy)
Pour utiliser une connexion HTTPS, Henix préconise l'utilisation d'un reverse proxy Apache HTTPD installé sur le serveur qui héberge l'application SquashTM. Henix recommande la branche 2.4 du serveur apache avec mod_proxy et mod_rewrite configurés pour forcer la connexion HTTPS.
Voici un exemple à adapter :
<VirtualHost *:443>
SSLEngine on
SSLProxyEngine on
ServerName myhost.mydomain.com
ErrorLog ${APACHE_LOG_DIR}/myhost_error.log
DocumentRoot /var/www
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/myhost_access.log combined
SSLCertificateFile /etc/ssl/mon-certificat-serveur.crt
SSLCertificateKeyFile /etc/ssl/private/ma-clef-privee.key
<IfModule mod_proxy_http.c>
ProxyPreserveHost On
ProxyPass /SquashTM http://localhost:8080/squash
ProxyPassReverse /SquashTM http://localhost:8080/squash
</ifModule>
</VirtualHost>
Si certaines URL de SquashTM persistent en HTTP (Espace Exigences, URL dans les API ou dans le champ description des anomalies), il faut forcer leur réécriture en suivant l'exemple ci-dessous :
<IfModule mod_rewrite.c>
RewriteLog rewrite.log
RewriteLogLevel 0
<IfModule mod_ssl.c>
<Location>
RewriteEngine on
RewriteCond %{HTTPS} !^on$ [NC]
RewriteCond %{HTTP_HOST} (^.*)$ [NC]
RewriteRule . https://%{HTTP_HOST}%{REQUEST_URI} [L]
</Location>
</IfModule>
</IfModule>
Info
Si un plugin est installé sur SquashTM pour réaliser une connexion avec un outil configuré en HTTPS, il faut autoriser les flux HTTPS entre le serveur SquashTM et le serveur de l'outil tiers. Pour ce faire, il faut enregistrer le certificat de l'outil tiers dans le truststore de la JVM de SquashTM. Consulter la page Connexion à un outil tiers en HTTPS pour en savoir plus.
Activer HTTPS sur SquashTM sans Reverse Proxy
Pour activer HTTPS directement dans le tomcat embarqué de SquashTM, il faut ajouter les informations suivantes dans le fichier conf/squash.tm.cfg.properties :
- Clés SSL
server.ssl.key-store=<chemin du keystore>
server.ssl.key-store-password=<mot de passe du keystore>
server.ssl.key-password=<mot de passe du certificat serveur>
server.ssl.key-alias=<mot de passe>
- Port
Il faut positionner la variable server.port de la manière suivante:
server.port=8443
Focus
Une fois ce paramétrage effectué, l'application ne fonctionne qu'en HTTPS c'est-à-dire que si l'utilisateur saisit http://…, l'URL ne sera pas redirigée automatiquement.
Attention
Il faut au préalable créer un keystore. Pour générer/manipuler un keystore au format JKS (Java KeyStore), les commandes se trouvent ici.
Connecter SquashTM à une BDD PostgreSQL en mode SSL
Pour que SquashTM se connecte en mode SSL à une base de données PostgreSQL, il faut ajouter le paramètre de requête ?sslmode=require à la fin de la valeur du paramètre de configuration spring.datasource.url.
spring.datasource.url = jdbc:postgresql://localhost:5432/squashtm?sslmode=require
spring.profiles.active = postgresql
spring.datasource.username = squash-tm
spring.datasource.password = password