UiPath Blog
本文書ではOrchestratorで使用されるサーバー証明書の入れ替え手順について説明をします。 サーバー証明書には有効期限があり、期限超過した場合にはOrchestrator稼働に影響が生じるため、事前に計画して適切な手順で入れ替え作業を実施していただく必要があります。
Orchestratorが使用するサーバー証明書には2つの役割があります。
クライアント(Studio/Robot/ブラウザー)からのHTTP通信をSSL/TLS暗号化(つまりHTTPS化)するためにサーバー証明書が使用されます。 この役割はOrchestratorの従来のバージョンから最新版において必須となるネットワーク要件です。
Orchestrator v2020.4以降ではHTTPS化に加えて、Orchestratorに内包されるIdentity Serverと呼ばれる認証・認可を行うサービスがアクセストークンを発行するためにも使用されます。
アクセストークンはクライアントがOrchestratorに対して適切な権限を用いて処理要求を送信する際に使用されます。Orchestratorは自身の保護対象リソースへの処理を行う際にはアクセストークンの妥当性を検証し、正当な処理要求のみを受け入れます。
本文書ではこれら2つの役割に対してそれぞれ証明書の入れ替えを正しく行う手順について説明をします。
サーバー証明書の有効期限切れによって、2つの役割に関連してそれぞれ下記の影響が生じます。
ブラウザーからの接続: ブラウザーからの接続時に証明書有効期限切れの警告が表示されるようになります。ブラウザーの種類によってはこの警告を無視して接続することも可能です。
Studio/Robotからの接続: Studio/Robotは証明書有効期限切れの警告を無視することはできません。つまりサーバー証明書の有効期限によってStudio/RobotはOrchestratorに接続できなくなります。
ブラウザーからのログイン: 警告を無視してOrchestrator管理画面に接続した場合でも、ログイン時にアクセストークンが取得できずエラーとなります。
Studio/Robotからの処理要求: OrchestratorのHTTPS接続時にエラーとなりますが、仮にこのエラーのみ解消したとしても、アクセストークンが取得できません。これによって例えばAssistantでプロセス一覧が表示されないなど、Orchestratorへの処理要求が正常に行えず、結果としてほとんどの機能を使用することができなくなります。
現在使用中のサーバー証明書の有効期限を確認するにはOrchestratorホストにて下記のいずれかの手順を実行します。
IISマネージャー
IISマネージャーにて "UiPath Orchestrator" サイトを選択し、①バインド > ②https 編集 > サイトバインドの編集 画面にて SSL証明書の ③[表示] をクリックし、証明書の詳細タブにて④有効期間の終了を確認します。
PowerShellコンソール
管理者権限PowerShellコンソールにて、下記コマンドを実行し、NotAfterの日時(=有効期間の終了)を確認します。複数の証明書が存在する場合には、サブジェクト名またはフレンドリ名にて区別します。
dir Cert:\LocalMachine\My | select Subject,FriendlyName,NotAfter
サーバー証明書の入れ替えを行う際には、次の点にご注意ください。
証明書入れ替えにはOrchestrator再起動などの操作が必要となるため一時的にOrchestrator,Studio,Robotが使用できなくなります。事前に計画を行い、業務影響の少ない時間帯に実施していただくことを推奨します。
自己署名証明書を使用されている場合には、Orchestratorホストでのサーバー証明書入れ替え作業に加えてクライアントマシンへの証明書の配布も合わせて実施していただく必要があります。新しい証明書配布が完了するまでの間はStudio,Robotが正常にOrchestratorに接続できなくなります。
サーバー証明書の入れ替えを行うには、下記の手順をそれぞれ実行します。新しい証明書は発行済みでOrchestratorホストにインポート済みであるとします。 なおHTTPS通信用・Identity Serverアクセストークン用で別々のサーバー証明書を指定することも可能ですが、特別な理由がない限りは管理の煩雑さを避けるため同一サーバー証明書の使用を推奨します。
ISマネージャーにて "UiPath Orchestrator" サイトを選択し、①バインド > ②https 編集 > サイトバインドの編集 画面にて SSL証明書の一覧より ③新しい証明書を選択し、OKをクリックします。
管理者権限PowerShellコンソールにて下記コマンドを実行し、新しい証明書の拇印(Thumbprint)をコピーします。複数の証明書が存在する場合には、サブジェクト名、フレンドリ名または有効期間にて区別します。
dir Cert:\LocalMachine\My | select Subject,FriendlyName,NotAfter,Thumbprint | fl
管理者権限でテキストエディターを起動し、設定ファイル C:\Program Files (x86)\UiPath\Orchestrator\Identity\appsettings.Production.json を開きます。 AppSettings→SigningCredentialSettings→StoreLocation→Nameに先ほどコピーした証明書のThumbprintをペーストして設定ファイルを保存します。
次にPowerShellコンソールにて certlm.msc を実行し、ローカルコンピューター → 個人の証明書ストア を開きます。新しい証明書を右クリックし、秘密キーの管理をクリックします。
証明書のアクセス許可画面にて①追加をクリックします。Orchestratorホストがドメイン参加している場合は、ユーザーまたはグループの選択画面にて②場所をクリックし、③ローカルコンピューターを選択し、④OKをクリックします。
オブジェクト名に IIS_IUSRS を指定し、名前の確認をクリックします。
アクセス許可画面にて IIS_IUSRS アカウントにフルコントロールが付与されていることを確認し、OKをクリックします。
管理者権限PowerShellコンソールまたはコマンドプロンプトにて iisreset /restart を実行しIISを再起動します。
Orchestratorを複数ノードにて冗長化している場合には、各ノードにて上記の入れ替え手順を実行します。
HAAまたはRedisを使用している場合には、 次のredis-cli コマンドによってインメモリDBにキャッシュされているデータを削除します。(既定の <portnumber> はHAAでは10000、Redisでは6379となります)
redis-cli -h <hostname> -p <portnumber> -a <password> FLUSHALL
Windows版のredis-cliは こちらのサイト から入手することができます。→ Redis-x64-3.0.504.zip
Azure App ServiceにてOrchestratorを運用する際に、既定ドメイン *.azurewebsites.net を使用している場合にはHTTPS通信用のサーバー証明書は自動的に更新されます。
カスタムドメインを使用している場合には、 こちらの手順 にて新しい証明書を追加しバインドします。
Identity Serverアクセストークン用のサーバー証明書の入れ替えは、Webガイドの手順のうち下記手順を実施します。
新しい秘密キー証明書(*.pfx)をアップロードします。
アプリケーション設定のうち、 AppSettings__SigningCredentialSettings__StoreLocation__Name と WEBSITE_LOAD_CERTIFICATES に新しい証明書の拇印(Thumbprint)を設定し、保存します。
設定を反映させるために Identity ServerのApp Serviceを再起動した後、UiPath OrchestratorのApp Serviceを再起動します。
新しいサーバー証明書を自己署名証明書で作成した場合、各クライアントマシンにて証明書を信頼するため次の手順を実行します。
Orchestratorホストにて certlm.msc コマンドを実行し、ローカルコンピューター → 個人の証明書ストアに配置されているサーバー証明書を右クリックし、エクスポートを選択します。
エクスポートウィザードにて秘密キーはエクスポートせず、DER encoded binary X.509またはBase 64 encoded X.509 (*.cer ファイル形式) にて証明書をエクスポートします。
エクスポートされた *.cer ファイルを各クライアントマシンにコピーし、certlm.msc コマンドを実行し、ローカルコンピューター → 信頼されたルート証明機関の証明書ストア にインポートを行います。
新しいサーバー証明書をドメイン認証局で作成した場合、ドメイン参加しているマシンにはグループポリシーにて自動的にルート証明書が配布されるため個別にサーバー証明書をインポートする必要はありません。
パブリック認証局で発行した場合には、各クライアントマシンに認証局のルート証明書および中間証明書がインポートされていることを確認します。
サーバー証明書の入れ替え後、環境に応じて下記の動作確認を行います。
ブラウザーにて、クッキーを削除またはシークレットモードを使用し、Orchestrator管理画面にログインできることを確認します。
Attended Robotを使用されているマシン上のAssistantにてプロセス一覧が表示され実行できることを確認します。
Unattended Robotを使用されているマシン対してOrchestratorから任意のジョブを実行できることを確認します。
以上
Topics:
OrchestratorTeam, UiPath