# Obtenção de certificados SSL (instalação local)

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 possui um centro de certificação (CA) interno, consulte o administrador do sistema para obter os certificados. Informe o domínio para os certificados e obtenha 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
sudo mkdir -p /opt/SherpaOrchestrator/backend/config/certs/

# Copie os certificados (renomeie os arquivos conforme recebido)
sudo cp your_certificate.crt /opt/SherpaOrchestrator/backend/config/certs/orchestrator.crt
sudo cp your_private.key /opt/SherpaOrchestrator/backend/config/certs/orchestrator.key

# Defina as permissões corretas
sudo chmod 644 /opt/SherpaOrchestrator/backend/config/certs/orchestrator.crt
sudo chmod 600 /opt/SherpaOrchestrator/backend/config/certs/orchestrator.key
```

<details>

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

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

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

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

**chmod 644** - define permissões de leitura para os certificados (o proprietário pode escrever, todos podem ler) **chmod 600** - define permissões apenas para o proprietário nas chaves privadas

</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 Debian/Ubuntu
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 via yum

**macOS:**

* `brew install certbot` - instala o Certbot via Homebrew

</details>

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

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

# Ou para certificado wildcard (requer DNS challenge)
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 o 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 o 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 o servidor Sherpa

Copie os certificados para o servidor onde o Sherpa Orchestrator está instalado:

```bash
# Crie um diretório para os certificados no servidor Sherpa
sudo mkdir -p /opt/SherpaOrchestrator/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:/opt/SherpaOrchestrator/backend/config/certs/orchestrator.crt
sudo scp /etc/letsencrypt/live/yourdomain.com/privkey.pem user@target-server:/opt/SherpaOrchestrator/backend/config/certs/orchestrator.key

# Defina as permissões corretas
sudo chmod 644 /opt/SherpaOrchestrator/backend/config/certs/orchestrator.crt
sudo chmod 600 /opt/SherpaOrchestrator/backend/config/certs/orchestrator.key
```

<details>

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

**sudo scp /etc/letsencrypt/live/yourdomain.com/fullchain.pem user\@target-server:/opt/SherpaOrchestrator/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:/opt/SherpaOrchestrator/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
sudo mkdir -p /opt/SherpaOrchestrator/backend/config/certs/

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

# Crie um certificado autoassinado
sudo openssl req -new -x509 -key /opt/SherpaOrchestrator/backend/config/certs/orchestrator.key -out /opt/SherpaOrchestrator/backend/config/certs/orchestrator.crt -days 365 -subj "/C=BR/ST=Estado/L=Cidade/O=Organização/CN=orchestrator.yourdomain.com"

# Defina as permissões corretas
sudo chmod 644 /opt/SherpaOrchestrator/backend/config/certs/orchestrator.crt
sudo chmod 600 /opt/SherpaOrchestrator/backend/config/certs/orchestrator.key
```

<details>

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

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

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

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

**sudo openssl req -new -x509 -key keyfile.key -out certfile.crt -days 365 -subj "/C=BR/..."** - 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

**chmod 644** e **chmod 600** - definem as permissões corretas

</details>

#### Verificação dos certificados criados

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

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

# Verifique a validade do certificado
sudo openssl x509 -in /opt/SherpaOrchestrator/backend/config/certs/orchestrator.crt -enddate -noout
```

<details>

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

**sudo openssl x509 -in /opt/SherpaOrchestrator/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

**sudo openssl rsa -in /opt/SherpaOrchestrator/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

**sudo openssl x509 -in /opt/SherpaOrchestrator/backend/config/certs/orchestrator.crt -enddate -noout** - mostra a data de expiração do certificado

</details>

### Configuração do TLS para o protocolo LDAPS (opcional)

**Importante:** Se o suporte a LDAPS não for necessário, pule esta seção.

Copie o certificado rootCA com o nome `ca-certificates.crt` para o diretório `/opt/SherpaOrchestrator/backend/config/certs/`

### Configuração dos certificados para o servidor IMAP (opcional)

**Importante:** Se você não planeja usar Gatilhos com acionamento por e-mail ou seu servidor de e-mail não requer certificados, pule esta seção.

Copie os certificados para imap na pasta `/opt/SherpaOrchestrator/backend/config/certs/imap_certs`

### Ativação dos certificados

Após a instalação dos certificados, é necessário reiniciar o Nginx:

```bash
# Verifique a sintaxe da configuração
sudo nginx -t

# Reinicie o Nginx
sudo systemctl restart nginx

# Verifique o status
sudo systemctl status nginx
```

### Verificação da conexão HTTPS

```bash
# Verifique a disponibilidade do HTTPS
curl -I https://your-domain-or-ip

# Verifique o certificado
openssl s_client -connect your-domain-or-ip:443 -servername your-domain-or-ip < /dev/null 2>/dev/null | openssl x509 -noout -dates
```

### Atualização automática dos certificados Let's Encrypt

Para atualizar automaticamente os certificados Let's Encrypt, configure o cron:

```bash
# Abra o crontab
sudo crontab -e

# Adicione a tarefa de atualização (executada 2 vezes ao dia em horários aleatórios)
0 */12 * * * /usr/bin/certbot renew --quiet && systemctl reload nginx
```

<details>

<summary>💡 Comentários sobre a atualização automática</summary>

**certbot renew --quiet** - atualiza todos os certificados cujo prazo de validade expira em menos de 30 dias

* `--quiet` - suprime a saída, exceto para erros

**systemctl reload nginx** - recarrega a configuração do Nginx após a atualização dos certificados

A tarefa é executada 2 vezes ao dia para garantir a atualização oportuna.

</details>

### Recomendações de segurança

1. **Sempre use certificados confiáveis** para ambientes de produção
2. **Atualize regularmente os certificados** antes da expiração
3. **Armazene chaves privadas em local seguro** com permissões restritas
4. **Monitore a validade dos certificados** e configure alertas
5. **Use suítes de cifra fortes** na configuração do servidor
6. **Configure HSTS** (HTTP Strict Transport Security) para forçar HTTPS

### Solução de problemas

#### Problema: "falha na verificação do certificado ssl"

**Solução:**

* Verifique a instalação correta dos certificados
* Certifique-se de que as permissões dos arquivos dos certificados estão corretas
* Verifique o caminho para os certificados na configuração do Nginx

#### Problema: "cadeia incompleta" ou "não foi possível obter o certificado do emissor local"

**Solução:**

* Use `fullchain.pem` em vez de `cert.pem` para o certificado
* Certifique-se de que o arquivo da cadeia de certificados está presente e correto

#### Problema: "falha na handshake ssl"

**Solução:**

* Verifique a compatibilidade das suítes de cifra
* Certifique-se de que a chave privada corresponde ao certificado
* Verifique os logs do Nginx em busca de erros

Após obter e configurar os certificados de qualquer uma das maneiras descritas, o sistema Sherpa Orchestrator estará disponível via HTTPS.


---

# 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/bez-ispolzvaniya-docker/poluchenie-ssl-sertifikatov-lokalnaya-ustanovka.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.
