Installation d'e-Atal V6 sur Windows Server
Publication sur IIS
Systèmes d’exploitation supportés
- Windows Server 2016, 2019, 2022.
Prérequis
Configuration de Windows Server avec le rôle serveur Serveur Web (IIS)
Activez le rôle serveur Serveur Web (IIS) : utilisez l’assistant Ajouter des rôles et des fonctionnalités via le biais du menu Gérer ou du lien dans Gestionnaire de serveur.
À l’étape Rôles de serveur, cochez la case Serveur Web (IIS).
Après l’étape Fonctionnalités, si l’étape Services de rôle se charge pour le serveur Web (IIS), acceptez les services de rôle par défaut fournis.
Dans la partie Performance
, cochez la case Dynamic Content Compression, puis dans la partie Application Development
, vérifiez que la case WebSocket Protocol est cochée.
S'il n'y a pas de ligne pour le serveur Web (IIS) après l'étape Fonctionnalités, développez le noeud Web Server (IIS), puis développez Web Server.
Dans la partie Performance
, cochez la case Dynamic Content Compression, puis dans la partie Application Development
, vérifiez que la case WebSocket Protocol est cochée.
Validez l’étape de Confirmation pour installer les services et le rôle de serveur web. Un redémarrage du serveur/d’IIS n’est pas nécessaire après l’installation de rôle Serveur Web (IIS).
Installation du module d’hébergement .NET Core
Installez le bundle d’hébergement .NET Core sur le serveur IIS permettant aux applications ASP.NET Core de s’exécuter derrière IIS.
Important : Si le bundle d’hébergement est installé avant IIS, l’installation du bundle doit être réparée. Après avoir installé IIS, réexécutez le programme d’installation du bundle d’hébergement.
Téléchargez le programme d’installation du runtime ASP.NET Core 8 (cliquez sur le lien Hosting Bundle). Exécutez le programme d’installation sur le serveur, acceptez les conditions générales de la licence et cliquez sur Installer.
À la fin de l’installation, redémarrez le système ou exécutez les commandes suivantes dans une interface de commande :
net stop was /y
net start w3svc
Création du site IIS
Créez un dossier sur le serveur qui contiendra les fichiers et dossiers publiés de l’application e-Atal V6.
Dans le gestionnaire IIS, ouvrez le nœud du serveur dans le panneau Connexions. Cliquez avec le bouton de droite sur le dossier Sites et sélectionnez Ajouter un site Web dans le menu contextuel.
Spécifiez le Nom du site et définissez le Chemin physique sur le dossier de déploiement de l’application. Indiquez éventuellement un nom d'hôte dans la partie Liaison si un nom d'hôte sera utilisé pour accéder à l'application. Puis, créez le site web en sélectionnant OK :
Sous le nœud du serveur, sélectionnez Pools d’applications. Cliquez avec le bouton de droite sur le pool d’applications du site et sélectionnez Paramètres avancés dans le menu contextuel.
Dans la fenêtre Modifier le pool d’applications, définissez la Version .NET CLR sur Aucun code managé et Charger le profil utilisateur sur True :
Optimisation du site
Par défaut, le processus est supprimé et libéré de la mémoire après 20 minutes d'inactivité. Cela implique un temps d'accès plus long lors d'une nouvelle requête après cette désactivation ("cold query").
Pour ne pas avoir ce problème, dans les paramètres avancés du pool d'application, changer le mode de démarrage sur AlwaysRunning :
Puis dans les paramètres avancés du site, choisissez True à la ligne Préchargement activé :
Nombre de processus de travail
Suite à la version 6.72, le code javascript des composants kendo est généré dans un fichier à part de la page. Ceci passe par un cache en mémoire pour stocker temporairement le code.
Pour que le cache mémoire fonctionne, il faut s'assurer que le nombre de maximal de processus de travail soit configuré sur la valeur 1 dans les paramètres avancés du pool d'application:
Sélection du certificat SSL
Si vous n'utilisez pas de proxy inverse, vous devez créer une liaison https. Ajouter le certificat SSL sur le serveur via le nœud du serveur > Certificats de serveur : veuillez suivre les instructions de votre fournisseur de certificat SSL, ou cliquez sur Importer pour ajouter votre propre fichier de certificat (.pfx).
Sélectionnez le nœud du site avec le bouton de droite et choisissez Modifier les liaisons dans le menu contextuel :
Cliquez sur le bouton Ajouter :
Dans la liste déroulante Type, choisissez https. Indiquez le nom de l’hôte et choisissez le certificat SSL dans la liste :
Cliquez sur le bouton OK pour valider.
Installation de l’application e-Atal V6
Arrêtez le site via le menu Gérer le site Web :
Décompressez ensuite le fichier .zip contenant les fichiers et dossiers publiés de l’application e-Atal V6 vers le dossier physique du site Web (vous pouvez cliquer sur le menu Explorer du site pour parcourir ce dossier physique).
Si e-Atal V6 est installé sur un serveur Windows 2012 R2, éditez le fichier web.config et commentez la section security :
<!--<security>
<requestFiltering removeServerHeader="true" />
</security>-->
Copiez le fichier appsettings.json présent dans le sous-dossier SampleSettings vers le sous-dossier Settings (ne pas faire cette copie lors d’une mise à jour sinon vous devrez refaire la configuration).
Configuration de la connexion à la base de données
Dans le fichier appsettings.json du dossier Settings, modifiez la ligne Atal
dans la section ConnectionStrings
.
Pour SQL Server :
"Atal": {
"ProviderType": "SqlServer",
"ConnectionString": "Server=serveur\\instance,port;Database=nomDeLaBase;User ID=utilisateur;Password=motDePasse;",
"SchemaName": "nomDuSchema"
}
Pour Oracle:
"Atal": {
"ProviderType": "Oracle",
"ConnectionString": "Data Source=hôte:port/nomDuService;User Id=utilisateur;Password=motDePasse;",
"SchemaName": "nomDuSchema"
}
Pour PostgreSQL:
"Atal": {
"ProviderType": "Postgre",
"ConnectionString": "Server=serveur;Port=port;Database=nomDeLaBase;User Id=utilisateur;Password=motDePasse;",
"SchemaName": "nomDuSchema"
}
Quand vous avez terminé la configuration, enregistrez le fichier appsettings.json, puis cliquez sur Démarrer via le menu Gérer le site Web :
Il ne vous reste plus qu’à tester le site en sélectionnant Parcourir dans le menu Gérer le site Web.
Utilisation d'un proxy inverse (reverse proxy)
Si vous souhaitez utiliser un proxy inverse en frontal du serveur e-Atal V6, éditez le fichier appsettings.json et décommentez la section HasReverseProxy
:
"HasReverseProxy": true,
Dans le cas où le chemin passé par le proxy contient un préfixe (par exemple /test
pour une redirection vers l'environnement de test), celui-ci doit être supprimé afin que le routage fonctionne correctement. Indiquez alors ce préfixe dans la clé PathBase du fichier appsettings.json :
"PathBase": "/test",
Si votre proxy inverse ne redirige pas automatiquement les requêtes HTTP vers HTTPS, indiquez dans le fichier appsettings.json le port HTTPS :
"https_port": 443,
Pour que les fonctionnalités de notification bureau et de conversation fonctionnent correctement dans e-Atal V6, le support des WebSockets doit être activé dans votre proxy inverse. Dans le cas d'un proxy inverse NGINX, vous pouvez consulter la documentation concernant les WebSockets. Voici un exemple de configuration :
server_tokens off;
map $http_upgrade $connection_upgrade {
default Upgrade;
'' close;
}
server {
listen 80;
server_name atalv6.mondomaine.fr;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name atalv6.mondomaine.fr;
add_header Strict-Transport-Security "max-age=2592000" always;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_certificate C:\Certbot\live\atalv6.mondomaine.fr\fullchain.pem;
ssl_certificate_key C:\Certbot\live\atalv6.mondomaine.fr\privkey.pem;
location / {
proxy_pass http://localhost:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /test/ {
proxy_pass http://localhost:8081;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Sécurité
Pour plus de sécurité, nous conseillons de désactiver les anciennes versions des protocoles SSL et TLS sur vos serveurs IIS ou sur vos reverse proxies (NGINX, Apache, ...).
Pour les serveurs IIS, vous pouvez utiliser l'outil IIS Crypto (cliquez sur le bouton Best Practices, laissez cocher uniquement les protocoles TLS 1.2 ou supérieurs dans la partie Server Protocols, puis cliquez sur le bouton Apply).
Pour un serveur NGINX, il faudra ajouter la ligne ssl_protocols TLSv1.2 TLSv1.3;
dans votre fichier de configuration.
Veuillez activer également l'entête Strict-Transport-Security dans les réponses HTTP sur vos reverse proxies.
Pour IIS, le programme s'en chargera, mais pour un reverse proxy de type NGINX par exemple, il faudra ajouter la ligne add_header Strict-Transport-Security "max-age=2592000" always;
dans votre fichier de configuration.
Vérification de l'installation
Vérifiez que la connexion est bien sécurisée et que le certificat est valide :
Après vous êtes connecté avec un utilisateur Atal, vérifiez qu'il n'y a pas d'erreur Javascript dans la console du navigateur (touche F12).
Dans la capture d'écran ci-dessus, il y a des erreurs concernant les WebSockets dûes à une mauvaise configuration du reverse proxy NGINX.
Configuration de la messagerie
Après avoir vérifié les paramètres de la messagerie, testez la configuration en envoyant un mail de test :
Configuration du dossier des pièces jointes
Ouvrez la configuration des pièces jointes pour connaître (ou indiquer) le dossier partagé pour les pièces jointes :
Si l'identité indiquée dans les paramètres du pool d'applications IIS est ApplicationPoolIdentity :
- Dans le cas où le répertoire des pièces jointes se trouve sur le serveur IIS, ajoutez IIS AppPool\nom_du_pool dans les droits du dossier.
- Sinon, pour un répertoire se trouvant sur un autre serveur, ajoutez le compte machine nom_du_domaine\nom_du_serveur_v6$ (ne pas oublier le $) dans les droits du dossier des pièces jointes, ainsi que sur le partage.
Pour toute autre identité, ajoutez directement l'utilisateur en question.
En cas de problème pour ajouter des pièces jointes de plus de 64 Ko, vérifiez que l'option Charger le profil utilisateur du pool d'application est bien définie à true
, puis créez un dossier Temp dans le dossier C:\Users\NomDuPoolDApplication\AppData\Local.