Show / Hide Table of Contents
Editar no GitHub

Setup do Rest PKI Core em Docker

Para instalar uma instância on premises do Rest PKI Core em Docker, siga os passos abaixo. Para outros ambientes, clique aqui.

A imagem de Docker do Rest PKI Core encontra-se disponível no Docker Hub:


Rest PKI Core Docker image

A imagem atualmente recomendada é a lacunasoftware/restpkicore:2.5.0

Tags móveis disponíveis:

  • A tag 2.5 aponta para a última imagem 2.5.x
  • A tag 2 aponta para a última imagem 2.x
  • A tag stable aponta para a última imagem estável

Note

Para testar a próxima versão do Rest PKI Core, atualmente em estágio Release Candidate, use a imagem lacunasoftware/restpkicore:3.0.0-rc01. Cuidado: versões Release Candidate não são adequadas para produção e, portanto, devem ser instaladas apenas em ambientes de homologação/testes!

Esta imagem requer:

  • Um blob storage compartilhado entre todos os containers rodando a imagem -- veja Configuração de Blob Storage
  • Connection string para um banco de dados SQL Server ou PostgreSQL criado previamente
  • Licença de uso da biblioteca PKI SDK (em formato binário/Base64)
  • Licença de uso do componente Web PKI (em formato binário/Base64)

Configuração

Esta imagem é configurada utilizando variáveis de ambiente. Obtenha o arquivo de configuração de exemplo para um guia de como preencher os parâmetros necessários.

Para preencher o parâmetro General__EncryptionKey, gere uma chave de 256 bits para encriptar dados sensíveis armazenados no banco de dados:

docker run lacunasoftware/restpkicore:2.5 -- gen-enc-key

Para preencher o parâmetro General__RootPasswordHash, escolha uma senha forte para acesso à interface de gerenciamento como root e calcule o hash dela:

docker run -i lacunasoftware/restpkicore:2.5 -- hash-root-pass

Portas

A imagem escuta na porta 80.

É recomendado configurar um proxy reverso ou balanceador de carga escutando nas portas padrão HTTP (80) e HTTPS (443), redirecionando o tráfego em ambas portas para a porta 80 do Rest PKI Core. Ademais, seu proxy deve preencher os request headers X-Forwarded-Proto, X-Forwarded-For e, opcionalmente, X-Forwarded-Port. A configuração Bindings__UseReverseProxy=True instrui o Rest PKI Core a confiar nas informações preenchidas nestes headers.

Exemplo

Em um ambiente de produção, tipicamente se utilizaria um orquestrador de Docker e um SGBD dedicado ou em nuvem (IaaS). Entretanto, para fins de teste, utilizando apenas o Docker é possível rodar uma instância do Rest PKI Core com um banco de dados PostgreSQL local.

Comece criando um volume para o banco de dados:

docker volume create restpkicore_sql

Inicie o SGBD com uma senha da sua preferência (substitua SOME_PASS abaixo):

docker run --name restpkicore_sql -v restpkicore_sql:/var/lib/postgresql/data -p 5432:5432 -e "POSTGRES_PASSWORD=SOME_PASS" -d postgres

Verifique os logs do container para eventuais erros:

docker logs -f restpkicore_sql

Esse processo pode levar alguns minutos. Uma vez que o SGBD esteja executando, pressione CTRL+C para sair dos logs.

Crie um volume para utilizar como blob storage:

docker volume create restpkicore_data

Em seguida, baixe o arquivo de configuração de exemplo, salve-o com nome restpkicore.env e preencha-o.

Na configuração da connection string, use o valor abaixo substituindo HOST_IP pelo endereço de IP da máquina host e SOME_PASS pela senha escolhida para o banco de dados:

ConnectionStrings__DefaultConnection=Host=HOST_IP;Database=restpkicore;Username=postgres;Password=SOME_PASS
ConnectionStrings__DefaultConnection_ProviderName=Postgres

Na configuração de blob storage, deixe os parâmetros padrões, pois montaremos o volume criado em /var/app:

BlobStorage__Type=FileSystem
BlobStorage__Path=/var/app

Por fim, execute um container com a imagem usando o arquivo de configuração, montando o volume restpkicore_data em /var/app e expondo a aplicação (que escuta na porta 80) na porta 8080 da máquina host:

docker run --name restpkicore --env-file restpkicore.env -v restpkicore_data:/var/app -p 8080:80 -d lacunasoftware/restpkicore:2.5
Tip

Caso tenha privilégios suficientes, o Rest PKI Core tentará criar o banco de dados no servidor caso ele não exista (é isso que acontecerá nesse caso)

Verifique os logs do container para eventuais erros de configuração:

docker logs -f restpkicore

Se tudo estiver configurado corretamente, você deve ter uma instância do Rest PKI Core rodando em localhost:8080

Veja também

  • Configuração de gerenciamento de usuários
Back to top Copyright © 2015-2020 Lacuna Software