Citrix Secure Private Access

基本的なトラブルシューティング

このトピックでは、Secure Private Access の設定中または設定後に発生する可能性のあるエラーの一部を示します。

証明書のエラー

データベース作成エラー

StoreFront 障害

パブリックゲートウェイ/コールバックゲートウェイの障害

Secure Private Accessサーバーにアクセスできない

証明書のエラー

エラーメッセージ:1 つ以上のゲートウェイサーバーから証明書を自動的に取得できません。

このエラーメッセージは、NetScaler Gatewayのパブリックアドレスを追加しようとして、証明書の取得に問題がある場合に表示されます。この問題は、Secure Private Access をセットアップするとき、またはセットアップが完了した後に設定を更新するときに発生する可能性があります。

回避策:Citrix Virtual Apps and Desktopsの場合と同じ方法でゲートウェイ証明書を更新します。

データベース作成エラー

  • エラーメッセージ:データベースを作成できませんでした

    解決策:自動の場合-SQL Server上のデータベース内にテーブルを作成するには、マシンに READ、WRITE、UPDATE 権限が必要です。

  • エラーメッセージ:データベースを作成できませんでした:データベースは既に存在します。

    このエラーメッセージは、次のシナリオのいずれかで表示されることがあります。

    • データベースの構成時に「自動構成 」オプションを選択した場合。
    • 管理者がデータベースを作成する場合、そのデータベースは空のデータベースでなければなりません。このエラーメッセージは、データベースが空でないデータベースである場合に表示されることがあります。

      解決策:空のデータベースを作成する必要があります。

    • Secure Private Access をアンインストールし、同じサイト名でセットアップを再試行します。この場合、以前のインストールのデータベースは削除されなかったでしょう。

      解決策:データベースを手動で削除する必要があります。

    • スクリプトを使用してデータベースを手動で設定し ([データベースの構成] ページで [手動構成] を選択)、次に [自動構成] オプションに変更しますが、サイト名は同じです。この場合、スクリプトの実行中に同じ名前のデータベースがすでに作成されています。

      解決策:サイトの名前を変更してから、スクリプトを再実行する必要があります。

    • マシンには、SQL Server上のデータベース内にテーブルを作成するための READ、WRITE、UPDATE 権限がありません。

      解決策: マシン上で適切な権限を有効にします。詳細については、「 データベースの設定に必要な権限」を参照してください。

  • エラーメッセージ:データベースを作成できませんでした:接続に失敗しました

    解決策

    • マシンからのデータベースネットワーク接続を確認してください。SQL Server ポートがファイアウォールで開いていることを確認します。
    • リモート SQL Serverを使用している場合は、SQL ServerにSecure Private Accessのマシン ID である Domain\ hostname$ を使用して作成されたログインがあるかどうかを確認してください。
    • リモート SQL Serverを使用している場合は、マシン ID に正しいロール、つまりシステム管理者ロールが割り当てられていることを確認してください。
    • ローカル SQL Server (インストーラからではない) を使用している場合は、NT AUTHORITY\ SYSTEM ユーザにログインを作成する必要があるかどうかを確認してください。

StoreFront 障害

  • エラーメッセージ:次のStoreFront エントリを作成できませんでした: <Store URL>

    表示されていない場合は、[ 設定 ]タブからStoreFront のエントリを更新します。ウィザードを使用してSecure Private Accessを設定したら、[ 設定 ]タブからStoreFront のエントリを編集できます。このエラーが発生したStoreFront ストアのURLを書き留めてください。

    解決策

    1. [ 設定 ] をクリックし、[ インテグレーション ] タブをクリックします。
    2. StoreFront ストアURLに、StoreFront エントリが表示されていない場合は、そのエントリを追加します。
  • エラーメッセージ:次のStoreFront エントリを構成できませんでした: <Store URL>

    解決策

    1. PowerShell の実行ポリシーによる制限が設定されている可能性があります。詳細については、PowerShell スクリプトコマンド Get-ExecutionPolicyを実行してください。

    2. 制限されている場合は、これを回避してStoreFront 構成スクリプトを手動で実行する必要があります。
    3. [ 設定 ] をクリックし、[ インテグレーション ] タブをクリックします。
    4. StoreFront ストアURL」で、エラーが発生したStoreFront URLのエントリを特定します。
    5. このストアURLの横にある[ スクリプトのダウンロード ]ボタンをクリックし、対応するStoreFront がインストールされているマシン上で管理者権限でこのPowerShellスクリプトを実行します。このスクリプトはすべてのStoreFront マシンで実行する必要があります。

    注:

    アンインストール後にインストールを再試行する場合は、StoreFront構成(StoreFront > ストア> Delivery Controller-Secure Private Access)に「Secure Private Access」という名前のエントリがないことを確認してください。Secure Private Accessが存在する場合は、このエントリを削除してください。設定 > インテグレーションページからスクリプトを手動でダウンロードして実行します。

  • エラーメッセージ:次のStoreFront 構成はローカルではありません: <Store URL>

    ウィザードを使用して Secure Private Access を設定したら、[ 設定 ] タブからゲートウェイエントリを編集できます。このエラーが発生したStoreFront ストアのURLを書き留めてください。

    解決策

    この問題は、StoreFront がSecure Private Accessと同じマシンにインストールされていない場合に発生します。StoreFront をインストールしたマシンでStoreFront 構成を手動で実行する必要があります。

    1. [ 設定 ] をクリックし、[ インテグレーション ] タブをクリックします。
    2. StoreFront ストアURL」で、エラーが発生したStoreFront URLのエントリを特定します。
    3. このストアURLの横にある[ スクリプトのダウンロード ]ボタンをクリックし、対応するStoreFront がインストールされているマシン上で管理者権限でこのPowerShellスクリプトを実行します。このスクリプトはすべてのStoreFront マシンで実行する必要があります。

    注:

    StoreFront PowerShellスクリプトを実行するには、管理者権限でWindows x64互換のPowerShellウィンドウを開き、ConfigureStoreFront.ps1を実行します。StoreFront スクリプトは Windows PowerShell (x86) と互換性がありません。

  • エラーメッセージ:PowerShellを使用してStoreFront スクリプトを実行しているときに「Get-STFStoreService: タイプ ‘Citrix.DeliveryServices.framework.feature.exceptions.registryKeyNotFoundException’ の例外が発生しました。」。

    このエラーは、StoreFront スクリプトをx86互換のPowerShellウィンドウで実行した場合に発生します。

    解決策:

    StoreFront PowerShellスクリプトを実行するには、管理者権限でWindows x64互換のPowerShellウィンドウを開いてからConfigureStorefront.ps1を実行します。

パブリックゲートウェイ/コールバックゲートウェイの障害

エラーメッセージ:: のゲートウェイエントリを作成できませんでした。 <Gateway URL> または、次のコールバックゲートウェイエントリを作成できませんでした: <Callback Gateway URL>

解決策

障害が発生したパブリックゲートウェイまたはコールバックゲートウェイの URL を書き留めておきます。ウィザードを使用して Secure Private Access を設定したら、[ 設定 ] タブからゲートウェイエントリを編集できます。

  1. [ 設定 ] をクリックし、[ インテグレーション ] タブをクリックします。
  2. パブリックゲートウェイアドレスまたはコールバックゲートウェイアドレスと、障害が発生した仮想IPアドレスを更新します。

Secure Private Accessサーバーにアクセスできない

エラーメッセージ:IIS プールを更新できませんでした。IIS プールを再起動できませんでした

解決策

インターネットインフォメーションサービス (IIS) の [アプリケーションプール] に移動し、次のアプリケーションプールが起動して実行されていることを確認します。

  • Secure Private Accessランタイム・プール
  • Secure Private Access管理者プール

また、デフォルトの IISサイト"Default Web Site"が稼働していることも確認してください。

データベース接続チェックの失敗

エラーメッセージ: 接続チェックが失敗しました

データベース接続チェックは、複数の理由で失敗する可能性があります:

  • ファイアウォールのため、Secure Private Access プラグインのホストマシンからデータベースサーバーにアクセスできません。

    解決策: データベースポート (デフォルトポート 1433) がファイアウォールで開いているかどうかを確認します。

  • Secure Private Access プラグインホストマシンには、データベースに接続する権限がありません。

    解決策:Secure Private Accessの SQL データベース権限を参照してください

ゲートウェイ接続チェックが失敗しました。公開証明書を取得できません

エラーメッセージ: インストール後の構成が次のエラーで失敗します。「ゲートウェイ接続チェックに失敗しました。公開証明書を取得できません…」

解決策:

  • 構成ツールを使用して、ゲートウェイのパブリック証明書をSecure Private Accessデータベースに手動でアップロードします。
  • PowerShell またはコマンドプロンプトウィンドウを管理者権限で開きます。
  • ディレクトリを Secure Private Access インストールフォルダの下の Admin\ AdminConfigTool フォルダに変更します (たとえば、cd「C:\Program Files\ Citrix\ Citrix Access Security\ Admin\ Admin\ AdminConfigTool」など)
  • 次のコマンドを実行します:

    .\AdminConfigTool.exe /UPLOAD_PUBLIC_GATEWAY_CERTIFICATE <PublicGatewayUrl> <PublicGatewayCertificatePath>

アプリケーション列挙失敗

StoreFront のURLまたはNetScaler GatewayのURLの末尾にスラッシュ(/)が含まれていると、アプリケーションの列挙が中断されます。

解決策:

StoreFront ストアURLまたはNetScaler Gateway URLの末尾のスラッシュを削除します。詳しくは、「 セットアップ後のStoreFront またはNetScaler Gatewayサーバーの詳細の更新」を参照してください。

その他

初回のセットアップを完了できない

初回セットアップ時にDirectorの構成が失敗した場合は、ライセンスサーバーを再構成できないことがあります。

解決策:

license_server テーブルを手動でクリーンアップしてください。

Secure Private Access診断サポートバンドルの作成

次の手順を実行して、Secure Private Access診断サポート・バンドルを作成します:

  • PowerShell またはコマンドプロンプトウィンドウを管理者権限で開きます。
  • ディレクトリを Secure Private Access インストールフォルダの下の Admin\ AdminConfigTool フォルダに変更します (たとえば、cd「C:\Program Files\ Citrix\ Citrix Access Security\ Admin\ Admin\ AdminConfigTool」など)。
  • 次のコマンドを実行します:

    .\AdminConfigTool.exe /SUPPORTBUNDLE <output folder>

Secure Private Accessの SQL データベース権限

データベースを自動作成するには、Secure Private Access プラグインホストマシンに、データベースに接続してデータベーススキーマを作成する権限が必要です。

リモートデータベース:

次の手順を実行して、リモートデータベースの権限を設定します。

  1. 名前の構文CitrixAccessSecurity<Site Name>で空のデータベースを作成します。<Site Name>は、Secure Private Accessのサイト名です 。(例えば。CitrixAccessSecuritySPA)。

    CREATE DATABASE CitrixAccessSecurity<SiteName>

  2. Secure Private Access仮想マシンのマシン ID 用の SQL Serverログインを作成します。たとえば、Secure Private Accessブローカーのマシン名が HOST1 で、マシンドメインが DOMAIN1 の場合、マシン ID は「DOMAIN1\ HOST1$」になります。ログインが既に作成されている場合は、このステップは無視できます。

    USE CitrixAccessSecurity<SiteName>

    CREATE LOGIN [DOMAIN1\HOST1$] FROM WINDOWS

    ドメイン名は次のクエリを使用して検索できます:

    SELECT DEFAULT_DOMAIN()[DomainName]

  3. db_owner ロールをマシン ID に割り当てます。

    USE CitrixAccessSecurity<SiteName>

    EXEC sys.sp_addrolemember [db_owner], 'DOMAIN1\HOST1$'

    ALTER USER [DOMAIN1\HOST1$] WITH DEFAULT_SCHEMA = dbo;

ローカルデータベース:

ローカルデータベースの権限を設定するには、次の手順を実行します。

  1. 名前の構文CitrixAccessSecurity<Site Name>で空のデータベースを作成します。<Site Name>はSecure Private Accessのサイト名です。(たとえば、CitrixAccessSecuritySPA)。

    CREATE DATABASE CitrixAccessSecurity<SiteName>

  2. NT AUTHORITY\SYSTEM ユーザーの SQL Server ログインを作成します。ログインが既に作成されている場合は、このステップは無視できます。

    USE CitrixAccessSecurity<SiteName>

    CREATE LOGIN [NT AUTHORITY\SYSTEM] FROM WINDOWS

  3. db_owner ロールを「NT AUTHORITY\SYSTEM」ユーザーに割り当てます。

    USE CitrixAccessSecurity<SiteName>

    EXEC sys.sp_addrolemember [db_owner], 'NT AUTHORITY\SYSTEM'

    ALTER USER [NT AUTHORITY\SYSTEM] WITH DEFAULT_SCHEMA = dbo;

データベースを手動で作成すると、ダウンロードしたデータベーススクリプトによってマシン ID に権限が追加されます。

トラブルシューティングログのログレベルを変更

トラブルシューティングログはデフォルトのエラーログレベルです。

トラブルシューティングログのログレベルを変更するには、ランタイムサービス appsettings.json(C:\Program Files\ Citrix\ Citrix Access Security\ Runtime\ RuntimeService)で、TroubleshootingSqlrestrictedToMinimumLevelを次のいずれかの値に更新します。

-  Information
-  Debug
-  Warning
-  Error

"TroubleshootingSql": {
  "restrictedToMinimumLevel": "Error",
  "batchPostingLimit": 50,
  "batchPeriod": "00:00:05" // 5 seconds
}