LoginSignup
6
0

[UiPath] オンプレ版OrchestratorでURL変更&証明書差し替え

Last updated at Posted at 2023-06-02

前提

使用した環境 バージョン 
IIS Windows Server 2019 Standard Edition
SQLServer Windows Server 2012 Standard Edition / SQL Server 2016 Standard Edition(64-bit)
Orchestrator 2020.10.11
  • 下記手順では、旧URL「https://[ホスト名]」を、新URL「https://[EC2インスタンスのパブリック IPv4 DNS]/」に変更します。
  • 証明書は、SAN値付き自己署名証明書を発行します。

参照した公式ドキュメント

手順

URLを変更する

  1. 念のためIISを停止する。(公式の手順にはないが、この後設定ファイルいじるので一応。)

  2. UiPath.Orchestrator.dll.config (C:\Program Files (x86)\UiPath\Orchestrator) を修正する。

検索する項目 変更前 変更後
ExternalAuth.System.OpenIdConnect.Authority <add key="ExternalAuth.System.OpenIdConnect.Authority" value="https://[OldOrchestratorAddress]/identity" /> <add key="ExternalAuth.System.OpenIdConnect.Authority" value="https://[NewOrchestratorAddress]/identity" />
ExternalAuth.System.OpenIdConnect.RedirectUri <add key="ExternalAuth.System.OpenIdConnect.RedirectUri" value="https://[OldOrchestratorAddress]/signinsystemopenidconnect" /> <add key="ExternalAuth.System.OpenIdConnect.RedirectUri" value="https://[NewOrchestratorAddress]/signinsystemopenidconnect" />
ExternalAuth.System.OpenIdConnect.PostLogoutRedirectUri <add key="ExternalAuth.System.OpenIdConnect.PostLogoutRedirectUri" value="https://[OldOrchestratorAddress]" /> <add key="ExternalAuth.System.OpenIdConnect.PostLogoutRedirectUri" value="https://[NewOrchestratorAddress]" />
IdentityServer.Integration.Authority <add key="IdentityServer.Integration.Authority" value="https://[OldOrchestratorAddress]/identity" /> <add key="IdentityServer.Integration.Authority" value="https://[NewOrchestratorAddress]/identity" />

3. appsettings.Production.json (C:\Program Files (x86)\UiPath\Orchestrator\Identity) を修正する。

  • 変更前

    "AppSettings": {
      "IdentityServerAddress": "https://[OldOrchestratorAddress]/identity", ......
      }
    
  • 変更後

    "AppSettings": {
      "IdentityServerAddress": "https://[NewOrchestratorAddress]/identity", ......
      }
    

4. SSMSでClientRedirectUris テーブルを開き、https://[OldOrchestratorAddress]/signinsystemopenidconnect の値を持つ [RedirectUri] フィールドを探す。
⇒下図だと、Id=2,5の2件。(Id=2は「http://」なので、手順的には変えなくてもいいのかもしれませんが、今回は変えました。)
image.png

5. 下記のクエリを実行し、https://[NewOrchestratorAddress]/signinsystemopenidconnect に変更する。

UPDATE [UiPath].[identity].[ClientRedirectUris] SET RedirectUri = 'http://[NewOrchestratorAddress]/signinsystemopenidconnect' WHERE Id = [上記で確認したId];
UPDATE [UiPath].[identity].[ClientRedirectUris] SET RedirectUri = 'https://[NewOrchestratorAddress]/signinsystemopenidconnect' WHERE Id = [上記で確認したId];

6. 値が正しく書き換わっていることを確認する。
image.png

7. ClientPostLogoutRedirectUris テーブルを開き、https://[OldOrchestratorAddress]/ の値を持つ [PostLogoutRedirectUri] フィールドを探す。
⇒下図だと、Id=3,4,5,8の4件。(Id=5は「http://」なので、手順的には変えなくてもいいのかもしれませんが、今回は変えました。)
image.png

8. 下記のクエリを実行し、https://[NewOrchestratorAddress]/ に変更する。

UPDATE [UiPath].[identity].[ClientPostLogoutRedirectUris] SET PostLogoutRedirectUri = 'https://[NewOrchestratorAddress]' WHERE Id = [上記で確認したId];
UPDATE [UiPath].[identity].[ClientPostLogoutRedirectUris] SET PostLogoutRedirectUri = 'https://[NewOrchestratorAddress]/' WHERE Id = [上記で確認したId];
UPDATE [UiPath].[identity].[ClientPostLogoutRedirectUris] SET PostLogoutRedirectUri = 'http://[NewOrchestratorAddress]/' WHERE Id = [上記で確認したId];
UPDATE [UiPath].[identity].[ClientPostLogoutRedirectUris] SET PostLogoutRedirectUri = 'https://[NewOrchestratorAddress]/account/login' WHERE Id = [上記で確認したId];

9. 値が正しく書き換わっていることを確認する。
image.png

10. Identity Server の appsettings.Production.json(C:\Program Files (x86)\UiPath\Orchestrator\Identity) ファイル内の OrchestratorUrl パラメーターを、Orchestrator の新しいパブリック アドレスで更新する。

  • 変更前
    "OrchestratorUrl": "https://[OldOrchestratorAddress]",
  • 変更後
    "OrchestratorUrl": "https://[NewOrchestratorAddress]",

11. IISを起動する。

証明書を差し替える

  1. 念のためIISを停止する。

  2. Powershellを管理者権限で起動し、SAN値付自己署名SSL証明書を作成する。
    ⇒下記の[サーバ名]、[NewOrchestratorAddress]、[証明書のインポートに使うパスワード]、[証明書のファイル名]の4箇所を環境に合わせて修正する。

$ssc = New-SelfSignedCertificate -FriendlyName "[サーバ名]" -Subject "CN=[NewOrchestratorAddress]" -DnsName "[NewOrchestratorAddress]"
$store = New-Object System.Security.Cryptography.X509Certificates.X509Store( "Root", "LocalMachine")
$store.Open("MaxAllowed")
$store.Add($ssc)
$pass = ConvertTo-SecureString -String "[証明書のインポートに使うパスワード]" -Force -AsPlainText
Export-PfxCertificate -Cert $ssc -FilePath "C:\temp\[証明書のファイル名].pfx" -Password $pass

3. SAN 自己署名証明書をインポートする。
⇒下記の[証明書のインポートに使うパスワード]、[証明書のファイル名]の2箇所を、上で設定したものに合わせる。

$pass = ConvertTo-SecureString -String "[証明書のインポートに使うパスワード]" -Force -AsPlainText
$imported = Import-PfxCertificate -FilePath "C:\temp\[証明書のファイル名].pfx" -CertStoreLocation Cert:\LocalMachine\My\ -Exportable -Password $pass
$store = New-Object System.Security.Cryptography.X509Certificates.X509Store( "Root", "LocalMachine")
$store.Open("MaxAllowed")
$store.Add($imported)

4. 「UiPath Orchestrator」のサイトバインドから、3.でインポートした証明書を参照させる。
image.png

5. 証明書の拇印をコピーする。
image.png

6. appsettings.Production.json (C:\Program Files (x86)\UiPath\Orchestrator\Identity) を修正する。
⇒ 5.でコピーした拇印を、"StoreLocation"の"Name"に貼り付ける。

  • 変更前
  "AppSettings": {
      ......
    "SigningCredentialSettings": {
      "StoreLocation": {
        "Name": "[旧証明書の拇印]",
        "Location": "LocalMachine",
        "NameType": "Thumbprint"
      }
    }
  • 変更後
  "AppSettings": {
      ......
    "SigningCredentialSettings": {
      "StoreLocation": {
        "Name": "[新証明書の拇印]",
        "Location": "LocalMachine",
        "NameType": "Thumbprint"
      }
    }

7. PowerShellコンソールにて certlm.msc を実行し、[ローカルコンピューター] → [個人の証明書ストア]を開く。新しい証明書を右クリックし、秘密キーの管理をクリックする。
image.png

8. 証明書のアクセス許可画面にて、追加をクリックする。
image.png

9. オブジェクト名に IIS_IUSRS を指定し、名前の確認をクリックする。
image.png

10. アクセス許可画面にて IIS_IUSRS アカウントにフルコントロールが付与されていることを確認し、OKをクリックする。
image.png

11. IISを起動する。

メモ

  • 証明書がうまくいってないときのエラー
    image.png

  • IIS_IUSRSが追加されてない時のエラー
    image.png

6
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0