# Redirige automatiquement tout le trafic http vers https
# (Ne pas autoriser le trafic en claire)
# /!\ Remplacer "mon-medshake.fr" par le domaine utilisé
ServerName mon-medshake.fr
ServerAdmin admin@mon-medshake.fr
RedirectMatch permanent ^(.*)$ https://mon-medshake.fr/$1
# Trafic https
# /!\ Remplacer "mon-medshake.fr" par le domaine utilisé
ServerName mon-medshake.fr
ServerAdmin admin@mon-medshake.fr
#
# Configuration SSL
#
# Charge le Module SSL
SSLEngine On
# /!\ Adapter en fonction du cetificat utilisé
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
# Ajoute l'entête http pour le HSTS
Header always set Strict-Transport-Security "max-age=0; includeSubDomains"
# Fichier de log dédié avec un format compatible avec le lecteur de log intégré
# à Medshake
CookieName apacheLogUserID
CookieDomain .mon-medshake.fr
Define MEDSHAKEEHRLOGFILE /var/log/apache2/medshake.log
SetEnv MEDSHAKEEHRLOGFILE ${MEDSHAKEEHRLOGFILE}
LogFormat "%{%Y-%m-%d %H:%M:%S}t %{c}a %r %{Cookie}n" usertrack
SetEnvIf Request_URI "\.png$|\.gif$|\.jpg$|\.svg$|\.js$|\.css$|\.map$|\.ico$|\.woff2" do_not_log
CustomLog ${MEDSHAKEEHRLOGFILE} usertrack env=!do_not_log
# Charge le module de réécriture de d'url
RewriteEngine On
DocumentRoot /srv/medshake/EHR/public_html/
DirectoryIndex index.php
# uniquement les clients du réseau local (modfier 192.168.1.0/24 en fonction
# de la configuration de votre réseau local)
Require ip 192.168.1.0/24
Require local
#
# Si le fichier /srv/medshake/.uncrypted n'existe pas c'est que les données
# MedShake n'ont pas été déchiffrés
# On redirige donc vers la page qui permet la saisie de la clé de déchiffrement
#
RewriteCond /srv/medshake/.uncrypted !-f
RewriteRule ^(.*)$ unix:/run/php/php-fpm-medshake.sock|fcgi://localhost/usr/local/lib/medshake/www/index.php [P,L]
# Passe tous les fichers php existants à php-fpm
RewriteCond /srv/medshake/.uncrypted -f
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_URI} -f
RewriteRule ^(.+\.php)$ unix:/run/php/php-fpm-medshake.sock|fcgi://localhost/%{DOCUMENT_ROOT}/$1 [P]
# Route /public/ au script public.php
RewriteCond /srv/medshake/.uncrypted -f
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_URI} !-f
RewriteRule ^(/public/)(.*)$ unix:/run/php/php-fpm-medshake.sock|fcgi://localhost/%{DOCUMENT_ROOT}/public.php [P]
# Route /phonecapture/ à phonecapture.php
RewriteCond /srv/medshake/.uncrypted -f
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_URI} !-f
RewriteRule ^(/phonecapture/)(.*)$ unix:/run/php/php-fpm-medshake.sock|fcgi://localhost/%{DOCUMENT_ROOT}/phonecapture.php [P]
# Route toutes les autres destinations où le fichier n'existe pas à index.php
RewriteCond /srv/medshake/.uncrypted -f
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_URI} !-f
RewriteRule ^(.*)$ unix:/run/php/php-fpm-medshake.sock|fcgi://localhost/%{DOCUMENT_ROOT}/index.php [P]
# uniquement les clients du réseau local (modifier 192.168.1.0/24 en fonction
# de la configuration de votre réseau local)
Require ip 192.168.1.0/24
Require local
# Ces ressources peuvent êtres mise en cache
Header setifempty Cache-Control "must-revalidate"
# Fixe un bug présent dans le version de apache utilisé dans Debian 10(2.4.38)
# qui gènère une entête http Etag mal formée et empêche un retrour 304
# quand la ressource est en cache.
# voire https://bz.apache.org/bugzilla/show_bug.cgi?id=45023#c22
RequestHeader edit "If-None-Match" '^"((.*)-gzip)"$' '"$1", "$2"'
# uniquement les clients du réseau local (modfier 192.168.1.0/24 en fonction
# de la configuration de votre réseau local)
Require ip 192.168.1.0/24
Require local
# Bloque les accès aux fichiers composer (juste c'est plus propre)
Require all denied