Table of Contents

Déployer sous Windows

Publier SESAR Webhook sur un serveur Windows, sous IIS ou avec Kestrel, en HTTPS.

Prérequis du serveur

  • Windows : l'application cible net9.0-windows, car ses secrets sont protégés par DPAPI.
  • Le runtime ASP.NET Core 9. Sous IIS, installez le Hosting Bundle ASP.NET Core 9, qui comprend le module IIS.
  • Un certificat HTTPS émis par une autorité à laquelle la machine de SESAR fait confiance.
  • Si un connecteur lit les fichiers du dépôt (comme SharePoint), un accès au stockage de SESAR, aux chemins indiqués dans le manifeste.

Publier

dotnet publish SESARWebHook.API.NetCore\SESARWebHook.API.NetCore.csproj -c Release -o D:\Publish\SESARWebHook

La publication contient appsettings.json : gardez votre version de production à part, et remettez-la après chaque publication. Le dossier publié ne doit contenir aucun fichier de secrets en clair.

Sous IIS

  1. Créez un pool d'applications sans code managé (« No Managed Code »), avec une identité dédiée.
  2. Dans ses paramètres avancés, activez Charger le profil utilisateur : la portée DPAPI CurrentUser en a besoin.
  3. Créez le site sur le dossier publié, avec une liaison HTTPS et votre certificat. Ne gardez pas de liaison HTTP.
  4. Déposez le fichier de secrets en clair, puis démarrez le site : il est chiffré pour l'identité du pool.
  5. Donnez à cette identité :
    • la lecture et la modification du fichier de secrets ;
    • la modification du dossier de sortie, si vous utilisez le connecteur Système de fichiers ;
    • la lecture seule du dossier des gestionnaires (Handlers).

dotnet publish produit un web.config pour le module IIS. La section Kestrel d'appsettings.json est alors ignorée : le HTTPS se règle dans la liaison IIS.

Avec Kestrel

L'application peut aussi s'exécuter seule. Elle ne s'installe pas comme service Windows sans modification du code : prévoyez un moyen de la démarrer et de la relancer.

Déclarez le certificat dans appsettings.json, par exemple depuis le magasin de certificats de la machine :

{
  "Kestrel": {
    "Endpoints": {
      "Https": {
        "Url": "https://0.0.0.0:443",
        "Certificate": {
          "Subject": "webhook.example.com",
          "Store": "My",
          "Location": "LocalMachine"
        }
      }
    }
  }
}

N'écrivez jamais le mot de passe d'un fichier PFX dans appsettings.json. Préférez le magasin de certificats.

Pour le développement seulement, dotnet dev-certs https --trust installe le certificat de développement d'ASP.NET Core. SESAR, sur une autre machine, ne lui ferait pas confiance.

Avant la mise en production

  • Réglez la variable d'environnement ASPNETCORE_ENVIRONMENT à Production.
  • Appliquez Sécuriser le déploiement.
  • Vérifiez GET /api/health/status depuis le serveur : ProcessorInitialized doit valoir true.