# Instalação e configuração de certificados SSL

Sherpa Orchestrator suporta conexões HTTPS para garantir comunicação segura. Este guia descreve maneiras de obter certificados SSL para uso no sistema.

### Recomendações para obtenção de certificados

**Importante:** Antes de obter certificados, consulte o administrador da sua rede interna ou o centro de certificação da sua empresa. Certificados corporativos geralmente são fornecidos pelo departamento de TI e garantem melhor integração com a infraestrutura de segurança existente.

Se certificados corporativos não estiverem disponíveis, considere as seguintes opções para obter certificados para domínios externos nas seções a seguir.

### Obtenção de certificados corporativos

Se sua organização tiver um centro de certificação (CA) interno, entre em contato com o administrador do sistema para obter os certificados. Informe o domínio para os certificados e receba 2 arquivos: certificado (`.crt`) e chave privada (`.key`). Após recebê-los, instale-os da seguinte forma:

```bash
# Crie um diretório para os certificados
mkdir -p ./backend/config/certs/

# Copie os certificados (renomeie os arquivos conforme recebidos)
cp your_certificate.crt ./backend/config/certs/orchestrator.crt
cp your_private.key ./backend/config/certs/orchestrator.key
```

<details>

<summary>💡 Comentários sobre a obtenção de certificados corporativos</summary>

**mkdir -p ./backend/config/certs/** - cria um diretório para os certificados

* `-p` - cria diretórios pai se necessário

**cp your\_certificate.crt ./backend/config/certs/orchestrator.crt** - copia o certificado **cp your\_private.key ./backend/config/certs/orchestrator.key** - copia a chave privada

**chmod 644 ./backend/config/certs/\*.crt** - define permissões de leitura para os certificados **chmod 600 ./backend/config/certs/\*.key** - define permissões apenas para o proprietário nas chaves

</details>

### Obtenção de certificados confiáveis através do Let's Encrypt

Para obter certificados confiáveis gratuitos do Let's Encrypt, use o Certbot em uma máquina com acesso à internet.

#### Instalação do Certbot

```bash
# No Ubuntu/Debian
sudo apt update
sudo apt install certbot

# No CentOS/RHEL
sudo yum install certbot

# No macOS (com Homebrew)
brew install certbot
```

<details>

<summary>💡 Comentários sobre a instalação do Certbot</summary>

**Ubuntu/Debian:**

* `sudo apt update` - atualiza a lista de pacotes
* `sudo apt install certbot` - instala o Certbot

**CentOS/RHEL:**

* `sudo yum install certbot` - instala o Certbot através do yum

**macOS:**

* `brew install certbot` - instala o Certbot através do Homebrew

</details>

#### Obtenção de certificado para o domínio

```bash
# Obtenha um certificado para seu domínio (substitua yourdomain.com pelo seu domínio)
sudo certbot certonly --standalone -d yourdomain.com

# Ou para um certificado wildcard (requer desafio DNS)
sudo certbot certonly --manual --preferred-challenges=dns -d yourdomain.com -d *.yourdomain.com
```

<details>

<summary>💡 Comentários sobre a obtenção do certificado</summary>

**sudo certbot certonly --standalone -d yourdomain.com** - obtém um certificado para o domínio

* `certonly` - obtém apenas os certificados, sem configurar o servidor web
* `--standalone` - inicia um servidor web temporário para o desafio HTTP-01
* `-d yourdomain.com` - especifica o domínio para o certificado

\**sudo certbot certonly --manual --preferred-challenges=dns -d yourdomain.com -d .yourdomain.com* - obtém um certificado wildcard

* `--manual` - modo manual (requer registro DNS)
* `--preferred-challenges=dns` - utiliza o desafio DNS-01
* `-d *.yourdomain.com` - domínio wildcard

</details>

#### Localização dos certificados obtidos

Após a obtenção bem-sucedida dos certificados, eles estarão no diretório `/etc/letsencrypt/live/yourdomain.com/`:

```bash
# Verifique o conteúdo do diretório com os certificados
sudo ls -la /etc/letsencrypt/live/yourdomain.com/

# A saída deve conter:
# cert.pem (certificado)
# chain.pem (cadeia de certificados)
# fullchain.pem (cadeia completa)
# privkey.pem (chave privada)
```

<details>

<summary>💡 Comentários sobre a localização dos certificados</summary>

**sudo ls -la /etc/letsencrypt/live/yourdomain.com/** - mostra o conteúdo do diretório com os certificados

* `/etc/letsencrypt/live/` - diretório padrão do Let's Encrypt
* `yourdomain.com/` - subdiretório para o domínio

**Arquivos de certificados:**

* `cert.pem` - certificado do domínio
* `chain.pem` - cadeia de certificados intermediários
* `fullchain.pem` - certificado completo com a cadeia
* `privkey.pem` - chave privada

</details>

#### Transferência de certificados para a máquina de destino

Copie os certificados para a máquina onde o Sherpa Orchestrator será instalado:

```bash
# Crie um diretório para os certificados na máquina de destino
mkdir -p ./backend/config/certs/

# Copie os certificados (substitua yourdomain.com pelo seu domínio)
sudo scp /etc/letsencrypt/live/yourdomain.com/fullchain.pem user@target-server:./backend/config/certs/orchestrator.crt
sudo scp /etc/letsencrypt/live/yourdomain.com/privkey.pem user@target-server:./backend/config/certs/orchestrator.key
```

<details>

<summary>💡 Comentários sobre a transferência de certificados</summary>

**mkdir -p ./backend/config/certs/** - cria um diretório para os certificados

**sudo scp /etc/letsencrypt/live/yourdomain.com/fullchain.pem user\@target-server:./backend/config/certs/orchestrator.crt** - copia o certificado

* `scp` - secure copy
* `fullchain.pem` - certificado completo com a cadeia
* Renomeado para `orchestrator.crt`

**sudo scp /etc/letsencrypt/live/yourdomain.com/privkey.pem user\@target-server:./backend/config/certs/orchestrator.key** - copia a chave privada

* `privkey.pem` - chave privada
* Renomeado para `orchestrator.key`

</details>

### Criação de certificados autoassinados (para testes)

**ATENÇÃO:** Certificados autoassinados não são confiáveis e gerarão avisos de segurança em navegadores. Use este método apenas para testes ou em redes isoladas!

#### Criação de um certificado autoassinado com OpenSSL

```bash
# Crie um diretório para os certificados
mkdir -p ./backend/config/certs/

# Gere a chave privada
openssl genrsa -out ./backend/config/certs/orchestrator.key 2048

# Crie um certificado autoassinado
openssl req -new -x509 -key ./backend/config/certs/orchestrator.key -out ./backend/config/certs/orchestrator.crt -days 365 -subj "/C=RU/ST=State/L=City/O=Organization/CN=orchestrator.sherparpa.ru"
```

<details>

<summary>💡 Comentários sobre a criação de certificados autoassinados</summary>

**mkdir -p ./backend/config/certs/** - cria um diretório para os certificados

**openssl genrsa -out ./backend/config/certs/orchestrator.key 2048** - gera a chave privada

* `genrsa` - geração de chave RSA
* `-out file.key` - arquivo de saída
* `2048` - comprimento da chave em bits

**openssl req -new -x509 -key keyfile.key -out certfile.crt -days 365 -subj "/C=RU/..."** - cria um certificado autoassinado

* `req -new -x509` - cria um novo certificado autoassinado
* `-key keyfile.key` - usa a chave privada especificada
* `-out certfile.crt` - arquivo de saída do certificado
* `-days 365` - validade (1 ano)
* `-subj "/C=RU/ST=State/L=City/O=Organization/CN=domain.com"` - informações sobre o sujeito

</details>

#### Verificação dos certificados criados

```bash
# Verifique as informações do certificado
openssl x509 -in ./backend/config/certs/orchestrator.crt -text -noout

# Verifique a correspondência entre a chave e o certificado
openssl rsa -in ./backend/config/certs/orchestrator.key -check
```

<details>

<summary>💡 Comentários sobre a verificação dos certificados</summary>

**openssl x509 -in ./backend/config/certs/orchestrator.crt -text -noout** - mostra informações sobre o certificado

* `x509` - comando para trabalhar com certificados X.509
* `-in file.crt` - arquivo de entrada do certificado
* `-text` - exibe informações em texto
* `-noout` - não exibe o certificado codificado

**openssl rsa -in ./backend/config/certs/orchestrator.key -check** - verifica a chave privada

* `rsa` - comando para trabalhar com chaves RSA
* `-in file.key` - arquivo de entrada da chave
* `-check` - verifica a validade da chave

</details>

### Configurando as permissões corretas

Após copiar ou criar os certificados, configure as permissões corretas:

```bash
# Configure as permissões dos certificados
chmod 644 ./backend/config/certs/*.crt
chmod 600 ./backend/config/certs/*.key
```

<details>

<summary>💡 Comentários sobre a configuração das permissões</summary>

**chmod 644 ./backend/config/certs/\*.crt** - configura as permissões dos certificados

* `644` - rw-r--r-- (leitura para todos, escrita apenas para o proprietário)
* `*.crt` - todos os arquivos de certificados

**chmod 600 ./backend/config/certs/\*.key** - configura as permissões das chaves privadas

* `600` - rw------- (leitura e escrita apenas para o proprietário)
* `*.key` - todos os arquivos de chaves privadas

**Requisitos de permissões:**

* arquivos `.crt`: 644 (leitura para todos, escrita para o proprietário)
* arquivos `.key`: 600 (leitura e escrita apenas para o proprietário)

</details>

### Recomendações de segurança

1. **Sempre use certificados confiáveis** para ambientes de produção
2. **Atualize regularmente os certificados** antes do vencimento
3. **Armazene as chaves privadas em um local seguro** com permissões restritas
4. **Monitore a validade dos certificados** e configure alertas
5. **Utilize suítes de cifra fortes** na configuração do servidor

Após obter e configurar os certificados de qualquer uma das maneiras descritas, retorne ao guia principal de instalação do Sherpa Orchestrator.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.sherparpa.ru/pt/sherpa-rpa/sherpa-orchestrator/ustanovka-sherpa-orchestrator/s-ispolzovaniem-docker/ustanovka-i-nastroika-ssl-sertifikatov.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
