【UiPath】WiresharkでStudioからOrchestratorへのHTTPリクエストを解読する

## 概要
WiresharkでStudioからOrchestratorへのHTTPリクエストを解読する方法をご案内します。
※注：私の投稿する内容は個人の見解であり、所属団体を代表するものではありません。

## 環境
・Azure VM
・Microsoft Windows Server 2019-Datacenter
・Orchestrator v2023.10.4
・Studio v2023.10.4

## WiresharkにOrchestratorの証明書の情報を登録する

### Orchestrator端末でWiresharkの [Preference] > [Protocols] > [TLS]を開く
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3334078/9f4a32c1-49e5-c1cb-5993-42a0b759899c.png)

### [RSA keys list] > [Edit] をクリックする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3334078/c477fbe1-8777-1a8d-1f7b-fbe6280ac87a.png)

### 次の内容でOrchestratorの証明書を登録して、OKを押下する
|Property  |Value  |
|---|---|
|IP address|any|
|Port  |443  |
|Protocol  |http  |
|Key File  |Orchestratorの証明書の格納先（例：C:\Users\test\Desktop\orchestrator.pfx)  |
|Password  |Orchestratorの証明書のパスワード  |

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3334078/a7dbd6c6-b6f3-ab71-4dc0-a8a99888af75.png)

### ロボット端末で暗号スイートを変更する

暗号スイートで(EC)DHEが利用されている場合、OrchestratorへのHTTPリクエストは解読できません。WiresharkでServer Hello時の暗号スイートを確認すると(EC)DHEが使用されておりました。
以下の記載に当てはまるので、暗号スイートに(EC)DHEを利用しないように設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3334078/92d048d4-fd17-29b4-bdd8-3e68cb8acd93.png)


参考：[TLS Decryption](https://wiki.wireshark.org/TLS#:~:text=The%20cipher%20suite%20selected%20by%20the%20server%20is%20not%20using%20(EC)DHE)

> The cipher suite selected by the server is not using (EC)DHE

暗号スイートを変更するためにはローカルグループポリシー>[コンピューターの構成] - [管理用テンプレート] - [ネットワーク] - [SSL 構成設定] - [SSL 暗号の順位]より(EC)DHEの順位を全てピックアップして、現在の位置より降順におきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3334078/27b47105-3aa1-f7e4-81f2-7ac515be908e.png)

[SSL暗号の順位]の並びを全てコピーしてコードエディタに貼り付け、降順に変更後もう一度[SSL暗号の順位]に貼り付けます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3334078/a352be7a-b4c5-2742-975f-bd06dd1705bd.png)

参考：[暗号スイート(Cipher Suite)の設定方法](https://jpwinsup.github.io/blog/2021/12/22/PublicKeyInfrastructure/SSLTLSConnection/cipher-suites-settings/#%E6%9A%97%E5%8F%B7%E3%82%B9%E3%82%A4%E3%83%BC%E3%83%88%E3%81%AE%E8%A8%AD%E5%AE%9A%E5%A4%89%E6%9B%B4%E6%89%8B%E9%A0%86-%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97-%E3%83%9D%E3%83%AA%E3%82%B7%E3%83%BC%E8%A8%AD%E5%AE%9A)

### セッションの停止
セッションが開始している状態ではHTTPリクエストの解読ができないので、タスクマネージャー>[詳細]タブより、(ユーザーモードの場合)UiPath.Service.UserHost.exeのタスクを終了します。
※サービスモードの場合、UiPath.Service.Host.exeのタスクを終了します。
StudioやAssistantについてもWiresharkでキャプチャを行う前に一度タスクマネージャーから終了してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3334078/9826de3c-7964-c6f7-d725-0941d3b2cff8.png)


参考：[TLS Decryption](https://wiki.wireshark.org/TLS#:~:text=The%20session%20has%20not%20been%20resumed)
>The Session has not been resumed.


### ネットワークインターフェースを選択する

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3334078/ab877803-6229-7836-dbb5-517322536a9f.png)

### StudioからOrchestratorにパブリッシュする
パブリッシュ後に次の赤いボタンを押下して停止します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3334078/da5ee86a-fa8c-9375-41e2-e091525f7d7a.png)

:::note info
ここではStudioからOrchestratorにパブリッシュする例を挙げていますがStudio-Orchestrator間のどのような操作でもHTTPリクエストを確認できます。
:::

### HTTPリクエストの確認

Orchestratorの証明書の登録、暗号スイートの変更、セッションの停止後に問題なく通信をデコードできていることが確認できました。
※今回のトラブルシューティングではStudioからOrchestratorにパッケージをアップロードする際の通信を確認します。Wiresharkからは、パッケージアップロード時のPOST /odata/Processes/UiPath.Server.Configuration.OData UploadPackageのapiが確認できました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3334078/a2e572f2-d10a-6e28-0574-3073a97ad052.png)

取得したベアラートークン（JSON Web Token）の中身を確認（復号）したい場合は、[JWT.IO](https://jwt.io/) にベアラートークンを貼り付けることで可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3334078/3bcd0969-1252-e61c-d1f5-f744e2a921a0.png)

## おわりに
本記事で紹介した内容が皆様のお役に立てれば幸いです。