Configurer des connexions TLS sur un serveur de rapports en mode natif

S’applique à : SQL Server 2016 (13.x) Reporting Services et versions ultérieures Power BI Report Server

Dans le mode natif de SQL Server Reporting Services (SSRS), vous pouvez utiliser le protocole Transport Layer Security (TLS) pour établir des connexions cryptées avec un serveur de rapports. TLS était auparavant connu sous le nom de SSL (Secure Sockets Layer). Si un fichier de certificat (.cer) est installé dans un magasin de certificats local sur le serveur de rapports, vous pouvez lier le certificat à une réservation d'URL SSRS pour prendre en charge les connexions au serveur de rapports par le biais d'un canal crypté.

Conseil

Pour plus d’informations sur le mode SharePoint de SSRS, voir Serveur de rapports Reporting Services (Mode SharePoint).

Comme Internet Information Services utilise aussi SSL, cela entraîne des problèmes d’interopérabilité significatifs que vous devez connaître si vous exécutez IIS et SSRS sur le même ordinateur. Pour obtenir des conseils sur la manière de résoudre ces problèmes, consultez la section relative aux problèmes d'interopérabilité avec l'IIS, plus loin dans cet article.

Prérequis

  • Un serveur de rapports en mode natif configuré
  • Un certificat de serveur installé sur votre ordinateur

Installer un certificat de serveur

Vous devez installer un certificat de serveur sur votre serveur de rapports dans le magasin local. Les certificats clients ne sont pas pris en charge.

Les SSRS n'offrent pas de fonctionnalité pour demander, générer, télécharger ou installer un certificat. C'est à vous de choisir les propriétés que vous spécifiez pour le certificat et l'autorité de certification auprès de laquelle vous l'obtenez. Vous décidez également des outils et des utilitaires que vous utilisez pour demander et installer le certificat.

Voici quelques possibilités d’obtention d’un certificat :

  • Windows Server fournit un composant logiciel enfichable de certificats que vous pouvez utiliser pour demander un certificat à une autorité de certification approuvée.

  • Si vous souhaitez générer un certificat localement à des fins de test, vous pouvez exécuter le script PowerShell suivant.

    • Exécutez le script en tant qu’administrateur.
    • Remplacez les espaces réservés par des valeurs adaptées à votre environnement.
    # Create a self-signed certificate in the local store.
    $newCertificate = New-SelfSignedCertificate -CertStoreLocation cert:\LocalMachine\My -DnsName <server-name> -FriendlyName "<friendly-name>"
    
    # Convert the report server password to a secure string.
    $secureStringPassword = ConvertTo-SecureString "<server-password>" -AsPlainText -Force
    
    # Set up a temporary folder if one doesn't exist.
    $folderPath = "C:\Temp"
    if (-not (Test-Path -Path $folderPath)) {
        New-Item -Path $folderPath -ItemType Directory
    }
    
    # Set up a variable for the path of a certificate file.
    $certificateFilePath = $folderPath, "\certificate-export.pfx" -join ""
    
    # Set up a variable for the path of the certificate's store location.
    $certificateStoreLocation = "cert:\LocalMachine\My\", $newCertificate.Thumbprint -join ""
    
    # Export the certificate to the file.
    Export-PFXCertificate -Cert $certificateStoreLocation -File $certificateFilePath -Password $secureStringPassword
    
    # Import the certificate from the file to the trusted root to avoid problems with the certificate not being trusted. 
    Import-PfxCertificate -FilePath $certificateFilePath cert:\LocalMachine\Root -Password $secureStringPassword
    

    Le certificat est désormais disponible pour une utilisation dans le Configuration Manager du serveur de rapports.

  • Si vous exécutez IIS et SSRS sur le même ordinateur, vous pouvez utiliser l'application de console IIS Manager pour demander et installer un certificat :

    1. Dans le gestionnaire IIS, créez et emballez un fichier de demande de certificat (.crt) en vue de son traitement ultérieur par une autorité de certification de confiance. Pour plus d’informations, consultez Demander un certificat de serveur.
    2. Une fois que l’autorité de certification vous a envoyé le fichier de certificat (.cer), utilisez la gestion IIS pour installer le fichier de certificat dans le magasin local. Pour plus d’informations, consultez Installer un certificat de serveur

Problèmes d'interopérabilité avec IIS

La présence d'IIS sur le même ordinateur que SSRS affecte considérablement les connexions TLS à un serveur de rapports :

  • Une dépendance est créée sur IIS lorsque vous configurez des URL de serveur de rapports pour les connexions TLS. IIS, à son tour, a une dépendance sur le service de publication World Wide Web. Par conséquent, le service de publication World Wide Web doit être en cours d’exécution lorsque vous configurez des URL de serveur de rapports pour les connexions TLS.
  • La désinstallation d'IIS peut interrompre temporairement le service à une URL du serveur de rapports liée à TLS. Après avoir désinstallé IIS, vous devez redémarrer l’ordinateur pour effacer toutes les sessions TLS du cache. Certains systèmes d’exploitation cachent des sessions TLS jusqu’à 10 heures. Par conséquent, une URL liée à TLS peut continuer à fonctionner une fois la liaison TLS supprimée de la réservation d’URL dans le référentiel HTTP.sys. Le redémarrage de l’ordinateur ferme toutes les connexions ouvertes qui utilisent le canal.

Lier TLS à une réservation d’URL SSRS

Les réservations pour l'URL du service web du serveur de rapports et l'URL du portail web sont configurées indépendamment.

Configurer l’accès au service web via un canal chiffré par TLS

Pour configurer une URL que vous pouvez utiliser pour accéder au serveur de rapports, procédez comme suit :

  1. Ouvrez Report Server Configuration Manager et connectez-vous au serveur de rapports.

  2. Dans la page État du serveur de rapports, sélectionnez Stop.

    Capture d’écran de la page État du serveur de rapports dans l’outil de configuration. Le bouton Arrêter est mis en surbrillance.

    Un message dans la fenêtre Résultats indique que le serveur est arrêté.

  3. Sélectionnez Démarrer. Un message dans la fenêtre Résultats indique que le serveur est en cours d’exécution.

  4. Dans le volet Connexion, sélectionnez URL des services Web.

    Capture d’écran de l’outil de configuration. À gauche, l’URL du service web est mise en surbrillance.

  5. Dans la liste des certificats HTTPS, sélectionnez le certificat que vous avez installé.

    Capture d’écran de l’outil de configuration. Dans la liste des certificats HTTPS, un certificat nommé Test est mis en surbrillance.

  6. Sélectionnez Appliquer. Les messages de la fenêtre Résultats indiquent la progression de l’outil de configuration.

    Capture d’écran de la fenêtre Résultats dans l’outil de configuration. Les messages indiquent une liaison de certificat réussie.

  7. Sous URL du service web Report Server, sélectionnez l’URL que vous avez réservée. Si vous y êtes invité, entrez les informations d'identification de votre serveur de rapports. Une fenêtre de navigateur s’ouvre pour fournir l’accès au serveur de rapports.

    Capture d’écran d’une fenêtre de navigateur montrant la page principale du dossier ReportServer du serveur de rapports.

    Si l’URL ne se connecte pas au serveur de rapports, vérifiez la base de données du serveur de rapports. Pour que l’URL fonctionne, vous devez d’abord créer et configurer la base de données.

Configurer l’accès au portail web via un canal chiffré par TLS

Si vous souhaitez également configurer l'accès au portail web via un canal crypté TLS, procédez comme suit :

  1. Dans Report Server Configuration Manager, dans le volet Connecter, sélectionnez Web Portal URL.

  2. Sélectionnez Avancé.

  3. Sous Plusieurs identités HTTPS pour la fonctionnalité Reporting Services actuelle sélectionnez Ajouter.

    Capture d’écran de la page Configuration de site web multiple avancé, avec le bouton Ajouter mis en surbrillance pour plusieurs identités HTTPS.

  4. Dans la liste des certificats, sélectionnez le certificat que vous avez installé, puis sélectionnez OK.

    Capture d’écran de la fenêtre Ajouter une liaison HTTPS du serveur de rapports. Le bouton OK et un certificat dans la liste des certificats sont mis en surbrillance.

    Les messages de la fenêtre Résultats indiquent la progression de l’outil de configuration.

    Capture d’écran de la fenêtre Résultats dans l’outil de configuration. Les messages indiquent une liaison de certificat réussie pour le portail web.

  5. Sous Identification du site du portail web, sélectionnez l’URL que vous avez réservée. Si vous y êtes invité, entrez les informations d'identification de votre serveur de rapports. Une fenêtre de navigateur s’ouvre et affiche la page d’accueil de SSRS.

    Capture d’écran d’une fenêtre de navigateur montrant le dossier principal de SSRS.

Comment les liaisons de certificat sont stockées

Les liaisons de certificats sont stockées dans le référentiel HTTP.sys. Une représentation des bindings que vous définissez est stockée dans la section URLReservations du fichier RSReportServer.config.

Les paramètres dans le fichier de configuration sont uniquement une représentation des valeurs réelles spécifiées ailleurs. Ne modifiez pas les valeurs directement dans le fichier de configuration.

Les paramètres de configuration n'apparaissent dans le fichier que lorsque vous utilisez le serveur de rapports Configuration Manager ou le fournisseur Windows Management Instrumentation (WMI) de Report Server pour lier un certificat.

Remarque

Si vous configurez une liaison avec un certificat TLS dans SSRS et que vous souhaitez ensuite supprimer le certificat de l'ordinateur, supprimez la liaison de SSRS avant de supprimer le certificat de l'ordinateur. Sinon, il n’est pas possible de supprimer la liaison à l’aide du Gestionnaire de configuration du serveur de rapports ou de WMI, et vous recevez un message « Paramètre non valide ».

Après avoir retiré le certificat de l'ordinateur, vous pouvez utiliser l'outil HttpCfg.exe pour supprimer la liaison du référentiel HTTP.sys. Pour plus d’informations, consultez HttpCfg.exe.

Les liaisons TLS sont une ressource partagée dans Windows. Lorsque vous utilisez serveur de rapports Configuration Manager ou d'autres outils tels que IIS Manager pour modifier les liaisons, ces modifications peuvent affecter d'autres applications sur le même ordinateur.

La meilleure pratique consiste à utiliser le même outil pour créer et modifier les liaisons. Par exemple, si vous créez des liaisons TLS à l'aide de serveur de rapports Configuration Manager, utilisez également Report Server Configuration Manager pour gérer le cycle de vie des liaisons. Si vous utilisez le gestionnaire IIS pour créer des liaisons, utilisez le gestionnaire IIS pour gérer le cycle de vie des liaisons.

Si vous installez IIS sur votre ordinateur avant d'installer SSRS, il est conseillé de vérifier la configuration TLS dans IIS avant de configurer SSRS.