- Introdução
- Requisitos
- Requisitos de Hardware
- Requisitos de software
- Usando um certificado para o protocolo HTTPS
- Melhores práticas
- Instalação
- Atualizando
- Servidor de Identidade
- Complemento de alta disponibilidade
- Solução de problemas de erros de inicialização
Usando um certificado para o protocolo HTTPS
Esta seção fornece uma explicação sobre como habilitar o protocolo HTTP para a comunicação entre o Orchestrator e os Robôs.
É preferível usar um certificado SSL de SAN enviado a uma Autoridade Certificadora em vez de um certificado autoassinado, pois nenhum certificado deve ser instalado em computadores com o UiPath Robot no primeiro caso. O certificado de SLL SAN emitido pela Autoridade Certificadora é confiável por todos os computadores no domínio.
Se a máquina primária do Orchestrator for registrada em um Active Directory que tenha uma Autoridade Certificadora local e uma política de registro automático, o usuário pode preencher uma solicitação de certificação, conforme descrito no seguinte procedimento.
Se você precisar criar um certificado SSL rapidamente, apenas para fins de testes, você pode criar um certificado SSL SAN autoassinado.
Abra um console do PowerShell como administrador e emita os seguintes comandos. Não se esqueça de personalizar os valores de acordo com seu ambiente.
$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
para uso posterior.
Depois que o certificado for criado, certifique-se de que:
-
Se ApplicationPoolIdentity for usado, no console de certificados, navegue até Pessoal > Certificados. Em seguida, clique com o botão direito do mouse em seu certificado pessoal do Orchestrator, selecione Todas as tarefas > Gerenciar chaves privadas e dê permissões completas ao IIS AppPool\Identity e IIS_IUSRS.
-
Se uma conta personalizada for usada, no console de certificados, navegue até Pessoal > Certificados. Em seguida, clique com o botão direito do mouse em seu certificado pessoal do Orchestrator, selecione Todas as tarefas > Gerenciar chaves privadas e dê permissões completas ao usuário personalizado definido no Pool de aplicativos do Orchestrator.
IIS AppPool\Identity e IIS_IUSRS são grupos locais e devem ser pesquisados em máquina local, não em domínio.
Para disponibilizar o certificado autoassinado, em outras máquinas (nós do Orchestrator secundário/máquinas com UiPath Robot), abra um console do PowerShell como administrador e emita os seguintes comandos.
$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)
O Firefox lida com o processo de forma um pouco diferente, pois não lê as informações do certificado no armazenamento do Windows. Ao invés de instalar certificados, permite que você defina exceções para certificados SSL em sites específicos.
Quando você visita um site que tenha um erro de certificado, a mensagem de aviso na captura de tela abaixo é exibida. A URL que você está tentando acessar é exibida na área azul. Para criar uma exceção para ignorar esse aviso nessa URL específica:
UiPathOrchestrator.msi
(durante a instalação ou a atualização), é aqui que você pode iniciar sua solução de problemas:
No Painel de Controle:
- Abra Gerenciar Certificados de Computador -> Pessoal -> Certificados. Identifique seu certificado e clique duas vezes no mesmo. Na aba Geral deve haver informações sobre sua validade.
- Em uma linha de comando, execute o seguinte comando para diagnosticar o certificado:
certutil -v -verifystore My <certificateThumbprint>
- seu resumo está na parte final dos dados resultantes.
Um erro interno do servidor pode ocorrer se o certificado não tiver as permissões apropriadas definidas. Execute o seguinte como Administrador para conceder as permissões necessárias:
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
Após executar o script, certifique-se de que:
-
Se ApplicationPoolIdentity for usado, no console de certificados, navegue até Pessoal > Certificados. Em seguida, clique com o botão direito do mouse em seu certificado pessoal do Orchestrator, selecione Todas as tarefas > Gerenciar chaves privadas e dê permissões completas ao IIS AppPool\Identity e IIS_IUSRS.
-
Se uma conta personalizada for usada, no console de certificados, navegue até Pessoal > Certificados. Em seguida, clique com o botão direito do mouse em seu certificado pessoal do Orchestrator, selecione Todas as tarefas > Gerenciar chaves privadas e dê permissões completas ao usuário personalizado definido no Pool de aplicativos do Orchestrator.
IIS AppPool\Identity e IIS_IUSRS são grupos locais e devem ser pesquisados em máquina local, não em domínio.
Se você encontrar erros ao tentar alterar seu certificado do Insights, certifique-se de seguir as instruções fornecidas na Atualização do Certificado do Insights.
- Solicitando um certificado SSL SAN da Autoridade Certificadora
- Criando um Certificado SSL SAN Autoassinado
- Criando um Certificado SSL Autoassinado na Máquina Primária do Orchestrator
- Importando o Certificado Autoassinado de SAN para Outras Máquinas
- Firefox — Permitindo Exceções
- Certificados de solução de problemas
- Erro Interno do Servidor
- Erro de Certificado do Insights
- Erro de certificado de navegadores baseados no Chromium