ネイティブ モードのレポート サーバーでの TLS 接続の構成
適用対象: SQL Server 2016 (13.x) Reporting Services 以降 Power BI Report Server
SQL Server Reporting Services (SSRS) ネイティブ モードでは、トランスポート層セキュリティ (TLS) プロトコルを使用して、レポート サーバーへの暗号化された接続を確立することができます。 TLS は以前は Secure Sockets Layer (SSL) と呼ばれていました。 レポート サーバー上のローカルの証明書ストアに証明書 (.cer) ファイルがインストールされている場合、その証明書を SSRS の URL 予約にバインドして、暗号化チャネルでのレポート サーバー接続をサポートできます。
ヒント
SSRS SharePoint モードについての詳細は、「Reporting Services レポート サーバー (SharePoint モード)」を参照してください。
インターネット インフォメーション サービス (IIS) でも TLS が使用されるため、IIS と SSRS を同じコンピューター上で実行する場合は、相互運用性に関する重要な問題について考慮する必要があります。 これらの問題の対処方法のガイダンスについては、この記事で後述する「IIS との相互運用性の問題」を確認してください。
前提条件
- 構成されたネイティブ モードのレポート サーバー
- コンピューターにインストールされているサーバー証明書
サーバー証明書のインストール
ローカル ストアのレポート サーバーにサーバー証明書をインストールする必要があります。 クライアント証明書がサポートされていません。
SSRS には、証明書を要求、生成、ダウンロード、またはインストールするための機能は用意されていません。 証明書に対して指定するプロパティと、取得する証明機関を選択するかどうかは、お客様の判断に委ねられます。 また、証明書の要求とインストールに使用するツールとユーティリティも決定します。
証明書を取得する可能性がいくつかあります。
Windows Server には証明書スナップインが用意されています。これを使用して、信頼されている証明機関から証明書を要求することができます。
テスト目的でローカルに証明書を生成する場合は、次の PowerShell スクリプトを実行できます。
- スクリプトは管理者として実行してください。
- プレースホルダーをご使用の環境の適切な値に置き換えます。
# 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
これで、レポート サーバー構成マネージャーで証明書を使用できるようになりました。
IIS と SSRS を同じコンピュータ上で実行している場合は、IIS マネージャー コンソール アプリケーションを使用して、証明書を要求およびインストールできます。
- IIS マネージャーで、信頼されている証明機関が行う後続の処理のために、証明書の要求 (.crt) ファイルを作成およびパッケージ化します。 詳細については、「サーバー証明書を要求する」を参照してください。
- 証明機関から証明書 (.cer) ファイルが送信されたら、IIS 管理を使用してローカル ストアに証明書ファイルをインストールします。 詳細については、「サーバー証明書をインストールする」を参照してください。
IIS との相互運用性の問題
SSRS と同じコンピュータに IIS が存在する場合、レポート サーバーへの TLS 接続に大きく影響します。
- TLS 接続のレポート サーバー URL を構成すると、IIS に依存関係が作成されます。 さらに、IIS は World Wide Web 発行サービスに依存しています。 その結果、TLS 接続のレポート サーバー URL を構成するときに、World Wide Web 発行サービスが実行されている必要があります。
- IIS をアンインストールすると、TLS がバインドされたレポート サーバー URL に対するサービスが一時的に中断されることがあります。 IIS をアンインストールした後、コンピュータを再起動して、キャッシュからすべての TLS セッションをクリアする必要があります。 一部のオペレーティング システムでは、TLS セッションが最大 10 時間キャッシュされます。 その結果、TLS バインド URL は、HTTP.sys リポジトリの URL 予約から TLS バインドが削除された後も引き続き機能します。 コンピューターを再起動すると、チャネルを使用するすべての開いている接続が閉じます。
SSRS URL 予約への TLS のバインド
レポート サーバー Web サービス URL とWeb ポータル URL の予約は別々に構成されます。
TLS で暗号化されたチャネルを使用して Web サービス アクセスを構成する
レポート サーバーへのアクセスに使用できる URL を構成するには、次の手順を実行します。
レポート サーバー構成マネージャーを開いて、レポート サーバーに接続します。
[レポート サーバーの状態] ページで、[停止] を選択します。
[結果] ウィンドウ内のメッセージは、サーバーが停止していることを示します。
[スタート] を選択します。 [結果] ウィンドウ内のメッセージは、サーバーが実行されていることを示します。
[接続] ウィンドウで [Web サービス URL] を選択します。
[HTTPS 証明書] 一覧で、インストールした証明書を選択します。
適用を選択します。 [結果] ウィンドウのメッセージは、構成ツールの進行状況を示します。
レポート サーバー Web サービス URL で、予約した URL を選択します。 求められたら、レポート サーバーの認証情報を入力します。 レポート サーバーへのアクセスを提供するブラウザー ウィンドウが開きます。
URL がレポート サーバーに接続しない場合は、レポート サーバー データベースを確認します。 URL を機能させるには、まずデータベースを作成して構成する必要があります。
TLS で暗号化されたチャネルを使用して Web ポータル アクセスを構成する
Web ポータルへのアクセスを TLS で暗号化されたチャネルで構成する場合も、次の手順を実行します。
レポート サーバー構成マネージャーで、[接続] ウィンドウの [Web ポータル URL] を選択します。
[Advanced] \(詳細設定) を選択します。
[現在の Reporting Services 機能の複数の HTTPS ID] で、 [追加] を選択します。
[証明書] 一覧で、インストールした証明書を選択し、[OK] を選択します。
[結果] ウィンドウのメッセージは、構成ツールの進行状況を示します。
Web ポータル サイト IDで、予約した URL を選択します。 求められたら、レポート サーバーの認証情報を入力します。 ブラウザー ウィンドウが開き、SSRS ホーム ページが表示されます。
証明書のバインドの保存方法
証明書のバインドは HTTP.sys に保存されます。 定義したバインドの記述は、RSReportServer.config ファイルの URLReservations セクションに保存されます。
構成ファイル内の設定は、他の場所で指定された実際の値を記述しただけのものです。 値を構成ファイル内で直接変更することは避けてください。
構成設定は、レポート サーバー構成マネージャー、またはレポート サーバーの Windows Management Instrumentation (WMI) プロバイダーを使用して証明書をバインドするまで、ファイルには表示されません。
Note
SSRS で TLS 証明書とのバインドを構成し、後でコンピュータから証明書を削除する場合は、コンピュータから証明書を削除する前に、SSRS からバインドを削除してください。 それ以外の場合は、レポート サーバー構成マネージャーまたは WMI を使用してバインドを削除することはできません。"無効なパラメーター" メッセージが表示されます。
コンピュータから証明書を既に削除した後、HttpCfg.exe ツールを使用して HTTP.sys からバインドを削除できます。 詳細については、「HttpCfg.exe」を参照してください。
TLS バインドは Windows の共有リソースです。 レポート サーバー構成マネージャーや、IIS マネージャーなどのその他のツールを使用する場合、それらの変更が同じコンピュータ上の他のアプリケーションに影響する場合があります。
ベスト プラクティスは、バインドを作成し編集するために同じツールを使用することです。 たとえば、レポート サーバー構成マネージャーを使用して TLS バインドを作成する場合も、レポート サーバー構成マネージャーを使用してバインドのライフサイクルを管理します。 IIS マネージャーを使用してバインドを作成した場合は、IIS マネージャーを使用してバインドのライフ サイクルを管理します。
コンピュータに IIS をインストールしてから SSRS をインストールする場合は、IIS で TLS 構成を確認してから SSRS を構成することをお勧めします。