UiPath Documentation
automation-suite
2.2510
true
Guia de instalação do Automation Suite no EKS/AKS
Importante :
A tradução automática foi aplicada parcialmente neste conteúdo. A localização de um conteúdo recém-publicado pode levar de 1 a 2 semanas para ficar disponível.

Gerenciamento dos certificados

Atualize os certificados de assinatura de token TLS e de identidade no Automation Suite no EKS/AKS.

Importante:

O processo de instalação gera certificados autoassinados em seu nome. Esses certificados expirarão em 90 dias. Você deve substituí-los por certificados assinados por uma Autoridade de Certificação (CA) confiável assim que a instalação for concluída. Se você não atualizar os certificados, a instalação deixará de funcionar após 90 dias.

Você pode usar a ferramenta de CLI uipathctl para atualizar certificados após a instalação. Para obter detalhes, consulte a documentação do uipathctl.

Generating a Certificate Signing Request (CSR) and a private key​

Para gerar o CSR e a chave privada, execute o seguinte comando:

# copy the machine openssl configuration locally
cp /etc/pki/tls/openssl.cnf ./openssl.tmp.cnf

# Replace the [AUTOMATION_SUITE_FQDN] value. For example, "automationsuite.corp.com"
AS_FQDN=[AUTOMATION_SUITE_FQDN]
cat >> ./openssl.tmp.cnf <<EOF
[SAN]
subjectAltName=DNS:$AS_FQDN,DNS:alm.$AS_FQDN,DNS:monitoring.$AS_FQDN,DNS:registry.$AS_FQDN,DNS:objectstore.$AS_FQDN,DNS:insights.$AS_FQDN,DNS:apps.$AS_FQDN
EOF

# create the certificate request
openssl req -new -sha256 -newkey rsa:2048 -nodes -keyout server.key -subj "/C=xx/ST=xx/O=xx/OU=xx/CN=$AS_FQDN" -reqexts SAN -config openssl.tmp.cnf -out ${AS_FQDN}.csr
# copy the machine openssl configuration locally
cp /etc/pki/tls/openssl.cnf ./openssl.tmp.cnf

# Replace the [AUTOMATION_SUITE_FQDN] value. For example, "automationsuite.corp.com"
AS_FQDN=[AUTOMATION_SUITE_FQDN]
cat >> ./openssl.tmp.cnf <<EOF
[SAN]
subjectAltName=DNS:$AS_FQDN,DNS:alm.$AS_FQDN,DNS:monitoring.$AS_FQDN,DNS:registry.$AS_FQDN,DNS:objectstore.$AS_FQDN,DNS:insights.$AS_FQDN,DNS:apps.$AS_FQDN
EOF

# create the certificate request
openssl req -new -sha256 -newkey rsa:2048 -nodes -keyout server.key -subj "/C=xx/ST=xx/O=xx/OU=xx/CN=$AS_FQDN" -reqexts SAN -config openssl.tmp.cnf -out ${AS_FQDN}.csr

Sua equipe de TI usa os valores obtidos para gerar um certificado assinado. A chave privada gerada permanece local.

Gerenciamento do certificado TLS​

Para exibir mais informações sobre a atualização dos certificados TLS, execute o seguinte comando:

uipathctl config update-tls-certificates --help
uipathctl config update-tls-certificates --help

Saída:

************************************************************************************
Manage tls certificates

Usage:
  uipathctl config tls-certificates [flags]
  uipathctl config tls-certificates [command]

Available Commands:
  get         Get the current tls certificates
  update      Update tls certificates

Flags:
  -h, --help   help for tls-certificates

Global Flags:
      --context string      name of the kubeconfig context to use
      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
      --log-format string   log format. one of [text,json] (default "text")
      --log-level string    set log level. one of [trace,debug,info,error] (default "error")
  -q, --quiet               suppress all output except for errors and warnings
      --timeout duration    timeout of the command (default 1h0m0s)

************************************************************************************
************************************************************************************
Manage tls certificates

Usage:
  uipathctl config tls-certificates [flags]
  uipathctl config tls-certificates [command]

Available Commands:
  get         Get the current tls certificates
  update      Update tls certificates

Flags:
  -h, --help   help for tls-certificates

Global Flags:
      --context string      name of the kubeconfig context to use
      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
      --log-format string   log format. one of [text,json] (default "text")
      --log-level string    set log level. one of [trace,debug,info,error] (default "error")
  -q, --quiet               suppress all output except for errors and warnings
      --timeout duration    timeout of the command (default 1h0m0s)

************************************************************************************

Encontrando os certificados TLS​

Os certificados são armazenados como um segredo ao nível do Istio. Você pode encontrar certificados sob o nome istio-ingressgateway-certs no namespace <istio-system> .

Consulte os arquivos de certificado na lista a seguir:

  • O certificado do servidor TLS é armazenado como tls.crt
  • A chave privada TLS do servidor como tls.key
  • O pacote do CA é armazenado como ca.crt

Você pode verificar os segredos usando o seguinte comando:

kubectl -n <istio-system> get secrets istio-ingressgateway-certs -o yaml
kubectl -n <istio-system> get secrets istio-ingressgateway-certs -o yaml

Os certificados também são armazenados no namespace <uipath> . Isso é aplicável a todos os produtos UiPath® que precisam de informações de certificado para confiar nas solicitações recebidas. Para obter detalhes, consulte Sobre a arquitetura de contêiner relacionada a certificados.

Atualização dos certificados TLS​

Importante:

Antes de atualizar o certificado do servidor, você deve descriptografar a chave privada que foi gerada na seção Gerando uma Solicitação de Assinatura de Certificado (CSR) e uma chave privada . Ignorar essa etapa de descriptografia resulta em um erro.

Para descriptografar a chave de certificado, execute o seguinte comando:

# replace /path/to/encrypted/cert/key to absolute file path of key
# replace /path/to/decrypt/cert/key to store decrypt key
# Once prompted, please entry the passphrase or password to decrypt the key

openssl rsa -in /path/to/encrypted/cert/key -out /path/to/decrypt/cert/key
# replace /path/to/encrypted/cert/key to absolute file path of key
# replace /path/to/decrypt/cert/key to store decrypt key
# Once prompted, please entry the passphrase or password to decrypt the key

openssl rsa -in /path/to/encrypted/cert/key -out /path/to/decrypt/cert/key
Como a cadeia de certificados é montado​

Quando você executa o comando uipathctl config tls-certificates update , uipathctl monta a cadeia de certificados completa a partir de dois arquivos de entrada separados:

  • server.crt a cadeia completa de certificados do servidor público no formato PEM: o certificado do servidor de folha, seguido pelo(s) certificado(s) de CA intermediários e a CA raiz que formam o caminho de assinatura para esse certificado de folha. Inclua apenas certificados que fazem parte da cadeia de assinatura real do certificado de folha - não inclua certificados de CA irmãos, não relacionados, duplicados ou alternativos.
  • ca.crt a cadeia de CA completa, incluindo todos os certificados intermediários e a CA raiz. O arquivo deve conter apenas os certificados usados para assinar o certificado do servidor TLS. Incluir qualquer outra coisa levará à falha.

uipathctl esses arquivos no runtime.

Para atualizar o certificado, forneça o caminho para cada um dos três arquivos de certificado. Todos os arquivos de certificado devem estar em formato PEM .

  • Pacote de autoridades de certificados - A cadeia de CA completa usada para assinar o certificado do servidor TLS. Inclua todos os certificados intermediários e a CA raiz. Não inclua o certificado leaf ou quaisquer outros certificados não usados para assinar o certificado do servidor TLS, pois incluir qualquer outra coisa levará a uma falha. O limite de cadeia é de até nove certificados.
  • Certificado do servidor - A cadeia completa de certificados do servidor público no formato PEM, começando com o certificado leaf do servidor, seguida pelo(s) certificado(s) de CA intermediário e CA raiz. Inclui apenas os certificados que formam a cadeia de assinatura real do certificado de folha.
  • Chave privada - Chave privada para o certificado do servidor.
uipathctl config tls-certificates update --cert server.crt --cacert ca.crt --key server.key
uipathctl config tls-certificates update --cert server.crt --cacert ca.crt --key server.key

Para solucionar erros de validação de certificado TLS, consulte Erros de validação de certificado TLS.

Se você optar por gerenciar os certificados por conta própria, deverá usar o sinalizador --use-istio-cert com o comando de atualização de certificados. Esse sinalizador permite que os segredos existentes sejam copiados para o namespace uipath . Esteja ciente de que, ao usar o sinalizador --use-istio-cert , você não deve usar nenhum outro sinalizador de certificado; caso contrário, o comando falhará.

Se você usar um namespace diferente de uipath, você deve especificá-lo passando para o sinalizador --namespace <uipath> , onde <uipath> representa o namespace onde o Automation Suite é implantado.

Acessando o certificado TLS​

Para imprimir os arquivos de certificado, execute o seguinte comando:

uipathctl config tls-certificates get
uipathctl config tls-certificates get

Gerenciamento de certificados de CA adicionais​

Para exibir mais informações sobre certificados de CA adicionais, execute o seguinte comando:

 uipathctl config additional-ca-certificates --help
 uipathctl config additional-ca-certificates --help

Saída:

***************************************************************************************

Manage additional ca certificates

Usage:
  uipathctl config additional-ca-certificates [flags]
  uipathctl config additional-ca-certificates [command]

Available Commands:
  get         Get the current additional ca certificates
  update      Update additional ca certificates

Flags:
  -h, --help   help for additional-ca-certificates

Global Flags:
      --context string      name of the kubeconfig context to use
  -f, --force               override all user prompts to true
      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
      --log-format string   log format. one of [text,json] (default "text")
      --log-level string    set log level. one of [trace,debug,info,error] (default "info")
  -q, --quiet               suppress all output except for errors and warnings
      --timeout duration    timeout of the command (default: 90 minutes) (default 1h30m0s)
      --versions string     optional path to versions file

Use "uipathctl config additional-ca-certificates [command] --help" for more information about a command.

***************************************************************************************
***************************************************************************************

Manage additional ca certificates

Usage:
  uipathctl config additional-ca-certificates [flags]
  uipathctl config additional-ca-certificates [command]

Available Commands:
  get         Get the current additional ca certificates
  update      Update additional ca certificates

Flags:
  -h, --help   help for additional-ca-certificates

Global Flags:
      --context string      name of the kubeconfig context to use
  -f, --force               override all user prompts to true
      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
      --log-format string   log format. one of [text,json] (default "text")
      --log-level string    set log level. one of [trace,debug,info,error] (default "info")
  -q, --quiet               suppress all output except for errors and warnings
      --timeout duration    timeout of the command (default: 90 minutes) (default 1h30m0s)
      --versions string     optional path to versions file

Use "uipathctl config additional-ca-certificates [command] --help" for more information about a command.

***************************************************************************************

As seguintes seções descrevem as operações que você pode realizar usando o comando uipathctl config additional-ca-certificates .

Atualização dos certificados de CA​

Para atualizar os certificados de CA, siga as seguintes etapas:

  1. Atualize o arquivo input.json para apontar para o arquivo com additional_ca_certs. Para obter detalhes, consulte Configuração do certificado.
  2. Aplique o manifesto:
    uipathctl manifest apply input.json --versions versions.json
    uipathctl manifest apply input.json --versions versions.json
    
    Este comando pode falhar com erros como:
    Error: [failed to wait for application argocd/<app-name1>: timed out waiting for the condition,
    failed to wait for application argocd/<app-name2>: timed out waiting for the condition]]
    Error: [failed to wait for application argocd/<app-name1>: timed out waiting for the condition,
    failed to wait for application argocd/<app-name2>: timed out waiting for the condition]]
    
    Independentemente da falha, prossiga para a etapa 3 para reiniciar as implantações e estabilizar o ambiente.
  3. Reinicie manualmente todas as implantações e conjuntos com estado no namespace uipath :
    kubectl rollout restart deployment -n <uipath>
    kubectl rollout restart sts -n <uipath>
    kubectl rollout restart deployment -n <uipath>
    kubectl rollout restart sts -n <uipath>
    
Observação:

Para anexar os certificados antigos, você deve usar o comando get da seção Acesso aos certificados de CA e anexá-los no arquivo de certificado de CA .pem que você deve fornecer no campo additional_ca_certs .

O arquivo de pacote do Certificado de CA deve ter um formato .pem válido e pode ter mais de um certificado presente nele.

Acessando os certificados de CA​

Para baixar os certificados de CA já configurados, execute o seguinte comando:

 uipathctl config additional-ca-certificates get
 uipathctl config additional-ca-certificates get

Gerenciando certificados de assinatura de token de identidade​

O Automation Suite oferece dois métodos para gerenciar a rotação de certificados de assinatura de token de identidade: automático e manual.

Para visualizar mais informações sobre certificados de assinatura de token de identidade, execute o seguinte comando:

 uipathctl config token-signing-certificates --help
 uipathctl config token-signing-certificates --help

Saída:

************************************************************************************

Manage token signing certificates

Usage:
  uipathctl config token-signing-certificates [flags]
  uipathctl config token-signing-certificates [command]

Available Commands:
  automatic-key-management Manage key management
  get                      Get the current token signing certificate
  rotate                   Rotate token signing certificates
  update                   Update future token signing certificate

Flags:
  -h, --help   help for token-signing-certificates

Global Flags:
      --context string      name of the kubeconfig context to use
  -f, --force               override all user prompts to true
      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
      --log-format string   log format. one of [text,json] (default "text")
      --log-level string    set log level. one of [trace,debug,info,error] (default "info")
  -q, --quiet               suppress all output except for errors and warnings
      --timeout duration    timeout of the command (default: 90 minutes) (default 1h30m0s)
      --versions string     optional path to versions file

Use "uipathctl config token-signing-certificates [command] --help" for more information about a command.

************************************************************************************
************************************************************************************

Manage token signing certificates

Usage:
  uipathctl config token-signing-certificates [flags]
  uipathctl config token-signing-certificates [command]

Available Commands:
  automatic-key-management Manage key management
  get                      Get the current token signing certificate
  rotate                   Rotate token signing certificates
  update                   Update future token signing certificate

Flags:
  -h, --help   help for token-signing-certificates

Global Flags:
      --context string      name of the kubeconfig context to use
  -f, --force               override all user prompts to true
      --kubeconfig string   kubectl configuration file (default: ~/.kube/config)
      --log-format string   log format. one of [text,json] (default "text")
      --log-level string    set log level. one of [trace,debug,info,error] (default "info")
  -q, --quiet               suppress all output except for errors and warnings
      --timeout duration    timeout of the command (default: 90 minutes) (default 1h30m0s)
      --versions string     optional path to versions file

Use "uipathctl config token-signing-certificates [command] --help" for more information about a command.

************************************************************************************
Importante:

Você pode usar um comprimento máximo de chave de 4096 bits para assinar certificados. Recomendamos enfaticamente que você use um comprimento de chave de pelo menos 512 bits (64 bytes) como uma prática recomendada.

A seção a seguir fornece detalhes sobre as operações que você pode realizar usando o comando uipathctl config token-signing-certificates .

Rotação automática de certificado​

Rotação automática de certificados significa que o Automation Suite gerencia o ciclo de vida das chaves de assinatura. Isso inclui chaves rotativas a cada 90 dias, anunciando novas chaves 14 dias antes da rotação, mantendo as chaves antigas por 14 dias após a rotação e, depois, excluí-las quando o período de 14 dias terminar.

Se você estiver atualizando de uma versão mais antiga para 2.2510, a rotação automática de certificados será desabilitada por padrão. Para habilitar o gerenciamento automático de chaves, execute o seguinte comando:

uipathctl config token-signing-certificates automatic-key-management enable
uipathctl config token-signing-certificates automatic-key-management enable
Importante:

Habilitar a rotação automática de certificados pode resultar em um tempo de inatividade de até uma hora.

A rotação automática de certificados é habilitada por padrão para instalações limpas do Automation Suite. Para desabilitar o gerenciamento automático de chaves, execute o seguinte comando:

uipathctl config token-signing-certificates automatic-key-management disable
uipathctl config token-signing-certificates automatic-key-management disable

Se a funcionalidade de gerenciamento automático estiver desabilitada, os certificados de assinatura precisarão ser atualizados e girados manualmente. Para obter detalhes sobre o gerenciamento manual de chaves, consulte a documentação sobre atualização manual e rotação de certificado.

Atualização manual do certificado​

Observação:

O comando a seguir não substitui o certificado de assinatura de token existente.

Certifique-se de que o certificado fornecido esteja no formato .pem . O arquivo server.crt deve conter toda a cadeia, conforme mostrado no exemplo a seguir:

-----server cert-----
-----root ca chain-----
-----server cert-----
-----root ca chain-----

Para fazer upload do novo certificado para assinar o token, execute o seguinte comando:

uipathctl config token-signing-certificates update --cert server.crt --key server.key
uipathctl config token-signing-certificates update --cert server.crt --key server.key

Depois de executar o comando de atualização, reinicie a implantação do Identity e aguarde 48 horas antes de executar o comando de rotação.

Rotação manual do certificado​

Para rotacionar ou substituir o certificado antigo pelo novo, execute o seguinte comando:

uipathctl config token-signing-certificates rotate
uipathctl config token-signing-certificates rotate

Após a rotação, reinicie as implantações e os conjuntos com estado executando os seguintes comandos:

kubectl -n <uipath> rollout restart deploy
kubectl -n <uipath> rollout restart sts
kubectl -n <uipath> rollout restart deploy
kubectl -n <uipath> rollout restart sts

Acessando o certificado​

Para baixar o certificado de assinatura de token atual, execute o comando a seguir:

uipathctl config token-signing-certificates get
uipathctl config token-signing-certificates get
Observação:

Deve haver um prazo de entrega de aproximadamente 24 a 48 horas entre a atualização e a rotação do certificado.

Precisamos desse prazo de entrega para continuar dando suporte à autenticação do token em cache assinado pelo certificado antigo.

Girar o certificado muito antes da expiração do token de cache pode resultar em tempo de inatividade. Nesse caso, talvez seja necessário reiniciar todos os robôs.

Esta página foi útil?

Conectar

Precisa de ajuda? Suporte

Quer aprender? Academia UiPath

Tem perguntas? Fórum do UiPath

Fique por dentro das novidades