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

Obtenção de certificados SSL#

Sherpa AIServer suporta conexões HTTPS para garantir comunicação segura. Este guia descreve as 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, 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:

# Crie diretórios para os certificados
mkdir -p ./oais/backend/config/certs/
mkdir -p ./embed-server/certs/

# Para o servidor principal (renomeie os arquivos conforme recebido)
cp your_certificate.crt ./oais/backend/config/certs/aiserver.crt
cp your_private.key ./oais/backend/config/certs/aiserver.key
💡 Comentários sobre a obtenção de certificados corporativos

mkdir -p ./oais/backend/config/certs/ - cria o diretório para os certificados do servidor principal

  • -p - cria diretórios pai se necessário

mkdir -p ./embed-server/certs/ - cria o diretório para os certificados do serviço de embedding

cp your_certificate.crt ./oais/backend/config/certs/aiserver.crt - copia o certificado cp your_private.key ./oais/backend/config/certs/aiserver.key - copia a chave privada

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

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#

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

# No CentOS/RHEL
sudo yum install certbot

# No macOS (com Homebrew)
brew install certbot
💡 Comentários sobre a instalação do Certbot

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

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

# 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
💡 Comentários sobre a obtenção do certificado

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

Localização dos certificados obtidos#

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

# 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)
💡 Comentários sobre a localização dos certificados

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

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

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

# Crie um diretório para os certificados na máquina de destino
mkdir -p ./oais/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:./oais/backend/config/certs/aiserver.crt
sudo scp /etc/letsencrypt/live/yourdomain.com/privkey.pem user@target-server:./oais/backend/config/certs/aiserver.key

# Para o serviço de embedding
mkdir -p ./embed-server/certs/
sudo scp /etc/letsencrypt/live/yourdomain.com/fullchain.pem user@target-server:./embed-server/certs/embed.crt
sudo scp /etc/letsencrypt/live/yourdomain.com/privkey.pem user@target-server:./embed-server/certs/embed.key
💡 Comentários sobre a transferência de certificados

mkdir -p ./oais/backend/config/certs/ - cria o diretório para os certificados do servidor principal

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

  • scp - secure copy
  • fullchain.pem - certificado completo com a cadeia
  • Renomeado para aiserver.crt

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

  • privkey.pem - chave privada
  • Renomeado para aiserver.key

De forma semelhante para o serviço de embedding:

  • Diretório: ./embed-server/certs/
  • Nomes dos arquivos: embed.crt e embed.key

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

ATENÇÃO: Certificados autoassinados não são confiáveis e causarã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#

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

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

# Crie um certificado autoassinado
openssl req -new -x509 -key ./oais/backend/config/certs/aiserver.key -out ./oais/backend/config/certs/aiserver.crt -days 365 -subj "/C=BR/ST=Estado/L=Cidade/O=Organização/CN=aiserver.sherparpa.ru"

# Para o serviço de embedding
mkdir -p ./embed-server/certs/
openssl genrsa -out ./embed-server/certs/embed.key 2048
openssl req -new -x509 -key ./embed-server/certs/embed.key -out ./embed-server/certs/embed.crt -days 365 -subj "/C=BR/ST=Estado/L=Cidade/O=Organização/CN=embed.sherparpa.ru"
💡 Comentários sobre a criação de certificados autoassinados

mkdir -p ./oais/backend/config/certs/ - cria o diretório para os certificados

openssl genrsa -out ./oais/backend/config/certs/aiserver.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=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 - período de validade (1 ano)
  • -subj "/C=BR/ST=Estado/L=Cidade/O=Organização/CN=domain.com" - informações sobre o titular

Verificação dos certificados criados#

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

# Verifique a chave privada
openssl rsa -in ./oais/backend/config/certs/aiserver.key -check
💡 Comentários sobre a verificação dos certificados

openssl x509 -in ./oais/backend/config/certs/aiserver.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 ./oais/backend/config/certs/aiserver.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

Definir as permissões corretas#

Depois de copiar ou criar os certificados, defina as permissões corretas:

# Para o servidor principal
chmod 644 ./oais/backend/config/certs/*.crt
chmod 600 ./oais/backend/config/certs/*.key

# Para o serviço de embeddings
chmod 644 ./embed-server/certs/*.crt
chmod 600 ./embed-server/certs/*.key
💡 Comentários sobre as permissões

chmod 644 ./oais/backend/config/certs/*.crt - define 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 ./oais/backend/config/certs/*.key - define as permissões das chaves privadas

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

Permissões necessárias:

  • Arquivos .crt: 644 (leitura para todos, escrita para o proprietário)
  • Arquivos .key: 600 (leitura e escrita apenas para o proprietário)

Recomendações de segurança#

  1. Use sempre certificados confiáveis em ambientes de produção.
  2. Renove os certificados regularmente antes do vencimento.
  3. Guarde as chaves privadas em um local seguro com acesso restrito.
  4. Monitore as datas de vencimento dos certificados e configure alertas.
  5. Use conjuntos de cifras fortes na configuração do servidor.

Depois de obter e configurar os certificados por qualquer um dos métodos descritos, retorne ao guia principal de instalação do Sherpa AI Server.