- 基本情報
- 要件
- ベスト プラクティス
- インストール
- 更新
- Identity Server
- 起動エラーのトラブルシューティング
証明書を使用して HTTPS プロトコルを有効化する
このセクションでは、Orchestrator と Robot 間の通信に HTTP プロトコルを有効化する方法について説明します。
自己署名証明書ではなく、認証機関に提出された SAN SSL 証明書の使用をお勧めします。SAN SSL 証明書の場合は、ロボット コンピューターに証明書をインストールする必要がないからです。認証機関によって発行された SAN SSL 証明書は、ドメイン内のすべてのコンピューターから信頼されます。
プライマリ Orchestrator マシンが、ローカル認証機関と自動登録ポリシーを持つ Active Directory に登録されている場合、ユーザーは以下の手順に従って証明書の要求を入力できます。
テストの目的でのみ SSL 証明書を素早く作成する必要がある場合は、自己署名 SAN SSL 証明書を作成できます。
管理者として PowerShell コンソールを開き、次のコマンドを発行します。環境に応じて値をカスタマイズすることを忘れないでください。
$ssc = New-SelfSignedCertificate -FriendlyName "TestingCertificate" -DnsName "loadbalancer.domain.local","node1.domain.local","node2.domain.local"
$store = New-Object System.Security.Cryptography.X509Certificates.X509Store( "Root", "LocalMachine")
$store.Open("MaxAllowed")
$store.Add($ssc)
$pass = ConvertTo-SecureString -String "myPass" -Force -AsPlainText
Export-PfxCertificate -Cert $ssc -FilePath "C:\temp\testingCertificate.pfx" -Password $pass
$ssc = New-SelfSignedCertificate -FriendlyName "TestingCertificate" -DnsName "loadbalancer.domain.local","node1.domain.local","node2.domain.local"
$store = New-Object System.Security.Cryptography.X509Certificates.X509Store( "Root", "LocalMachine")
$store.Open("MaxAllowed")
$store.Add($ssc)
$pass = ConvertTo-SecureString -String "myPass" -Force -AsPlainText
Export-PfxCertificate -Cert $ssc -FilePath "C:\temp\testingCertificate.pfx" -Password $pass
C:\temp\testingCertificate.pfx
ファイルもエクスポートされます。
証明書が作成されたら、以下を確認します。
-
ApplicationPoolIdentity を使用している場合は、証明書コンソールで [個人] > [証明書] に移動します。次に、Orchestrator の個人証明書を右クリックして、[すべてのタスク] > [秘密キーの管理] を選択し、IIS AppPool\Identity と IIS_IUSRS の両方にすべての権限を付与します。
-
カスタム アカウントを使用している場合は、証明書コンソールで [個人] > [証明書] に移動します。次に、Orchestrator の個人証明書を右クリックして、[すべてのタスク] > [秘密キーの管理] を選択し、Orchestrator アプリケーション プールに設定されているカスタム ユーザーにすべての権限を付与します。
IIS AppPool\Identity と IIS_IUSRS はローカル グループであるため、ドメインではなくローカル マシンで検索する必要があります。
自己署名証明書を他のマシン (Orchestrator のセカンダリ ノード/ロボット端末) で利用できるようにするには、管理者として PowerShell コンソールを開き、次のコマンドを発行します。
$pass = ConvertTo-SecureString -String "myPass" -Force -AsPlainText
$imported = Import-PfxCertificate -FilePath "C:\temp\testingCertificate.pfx" -CertStoreLocation Cert:\LocalMachine\My\ -Exportable -Password $pass
$store = New-Object System.Security.Cryptography.X509Certificates.X509Store( "Root", "LocalMachine")
$store.Open("MaxAllowed")
$store.Add($imported)
$pass = ConvertTo-SecureString -String "myPass" -Force -AsPlainText
$imported = Import-PfxCertificate -FilePath "C:\temp\testingCertificate.pfx" -CertStoreLocation Cert:\LocalMachine\My\ -Exportable -Password $pass
$store = New-Object System.Security.Cryptography.X509Certificates.X509Store( "Root", "LocalMachine")
$store.Open("MaxAllowed")
$store.Add($imported)
UiPathOrchestrator.msi
の証明書の使用について問題が発生した場合は、以下の手順に沿ってトラブルシューティングを開始します。
コントロール パネルから:
- [コンピューター証明書の管理] > [個人] > [証明書] を開きます。お使いの証明書を確認し、ダブルクリックします。[全般] タブで有効期間に関する情報を確認できます。
- コマンド ラインから次のコマンドを実行して証明書を診断します:
certutil -v -verifystore My <certificateThumbprint>
。概要は出力結果の最後に表示されます。
証明書に適切な権限一式が設定されていない場合、内部のサーバー エラーが発生する可能性があります。必要な権限を付与するには、管理者として次のことを実行します。
import-module WebAdministration
$siteName = 'UiPath Orchestrator'
$binding = (Get-ChildItem -Path IIS:\SSLBindings | Where Sites -eq $siteName)[0]
$certLoc = "cert:\LocalMachine\MY\$($binding.Thumbprint)"
$cert = Get-Item $certLoc
$keyPath = $env:ProgramData + "\Microsoft\Crypto\RSA\MachineKeys\"
$keyName = $cert.PrivateKey.CspKeyContainerInfo.UniqueKeyContainerName
$keyFullPath = $keyPath + $keyName
$acl = (Get-Item $keyFullPath).GetAccessControl('Access')
$permission="IIS_IUSRS","Full","Allow"
$accessRule = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList $permission
$acl.AddAccessRule($accessRule)
Set-Acl -Path $keyFullPath -AclObject $acl
import-module WebAdministration
$siteName = 'UiPath Orchestrator'
$binding = (Get-ChildItem -Path IIS:\SSLBindings | Where Sites -eq $siteName)[0]
$certLoc = "cert:\LocalMachine\MY\$($binding.Thumbprint)"
$cert = Get-Item $certLoc
$keyPath = $env:ProgramData + "\Microsoft\Crypto\RSA\MachineKeys\"
$keyName = $cert.PrivateKey.CspKeyContainerInfo.UniqueKeyContainerName
$keyFullPath = $keyPath + $keyName
$acl = (Get-Item $keyFullPath).GetAccessControl('Access')
$permission="IIS_IUSRS","Full","Allow"
$accessRule = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList $permission
$acl.AddAccessRule($accessRule)
Set-Acl -Path $keyFullPath -AclObject $acl
スクリプトの実行後、以下を確認します。
-
ApplicationPoolIdentity を使用している場合は、証明書コンソールで [個人] > [証明書] に移動します。次に、Orchestrator の個人証明書を右クリックして、[すべてのタスク] > [秘密キーの管理] を選択し、IIS AppPool\Identity と IIS_IUSRS の両方にすべての権限を付与します。
-
カスタム アカウントを使用している場合は、証明書コンソールで [個人] > [証明書] に移動します。次に、Orchestrator の個人証明書を右クリックして、[すべてのタスク] > [秘密キーの管理] を選択し、Orchestrator アプリケーション プールに設定されているカスタム ユーザーにすべての権限を付与します。
IIS AppPool\Identity と IIS_IUSRS はローカル グループであるため、ドメインではなくローカル マシンで検索する必要があります。
Insights 証明書を変更しようとしてエラーが発生した場合は、「Insights 証明書の更新」に記載されている指示に従います。