Show / Hide Table of Contents
Editar no GitHub

Instalação do Lacuna PSC em Ubuntu Server

Para instalar uma instância on premises do Lacuna PSC em Ubuntu Server, siga os passos abaixo. Para outras plataformas, clique aqui.

Pré-requisitos

  • Ubuntu Server (qualquer versão ainda suportada pelo fabricante, recomendamos a versão LTS mais recente)
  • Instância do Amplia configurada para hospedagem de certificados em nuvem
  • Instância do GrantID
  • Licença do PKI SDK (no formato Base64)
  • Entrada de DNS criada anteriormente para o site
  • Connection string para um banco de dados SQL Server ou PostgreSQL criado previamente

Instale o ASP.NET Core Runtime 6.0

Important

Essas instruções assumem que você está autenticado como root. Se você não estiver, execute sudo su - antes de continuar!

Siga as instruções abaixo dependendo da versão do seu Ubuntu para:

  1. Registrar a chave da Microsoft e adicionar o repositório de pacotes (só precisa ser feito em versões anteriores à versão 22 e uma única vez por máquina)
  2. Instalar o pacote aspnetcore-runtime-6.0

Ubuntu 22.04 (LTS)

apt-get update
apt-get install aspnetcore-runtime-6.0

Ubuntu 20.04 (LTS)

curl -O https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb
dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
apt-get update
apt-get install aspnetcore-runtime-6.0

Ubuntu 18.04 (LTS)

curl -O https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb
dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
apt-get update
apt-get install aspnetcore-runtime-6.0

Ubuntu 16.04 (LTS)

curl -O https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb
dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
apt-get update
apt-get install aspnetcore-runtime-6.0

Teste a instalação

Para testar a instalação, execute:

dotnet --list-runtimes

A saída esperada é semelhante a:

Microsoft.AspNetCore.App 6.0.* [*/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 6.0.* [*/dotnet/shared/Microsoft.NETCore.App]
Tip

Para outras versões do sistema operacional e métodos alternativos de instalação do ASP.NET Core Runtime, visite esta página

Instale dependências adicionais:

apt-get install libc6-dev libgdiplus

Instalar o Lacuna PSC

Crie um usuário local para executar o servidor de aplicação do Lacuna PSC:

mkdir /var/lacuna-psc
useradd --system --home-dir /var/lacuna-psc lacuna-psc
chown lacuna-psc:lacuna-psc /var/lacuna-psc

Crie a pasta do site, baixe e extraia os binários:

Note

Para testar a próxima versão do Lacuna PSC, atualmente em estágio Release Candidate, substitua psc-x.y.z.tar.gz nos comandos abaixo por psc-1.5.0-rc01.tar.gz. 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!

mkdir /usr/share/lacuna-psc
curl -O https://cdn.lacunasoftware.com/psc/psc-1.4.2.tar.gz
tar xzf psc-1.4.2.tar.gz -C /usr/share/lacuna-psc
chmod -R a=,u+rwX,go+rX /usr/share/lacuna-psc
Note

Os arquivos do site podem ser lidos por qualquer usuário mas só podem ser alterados por usuários com permissões elevadas. Isso significa que o usuário da aplicação (lacuna-psc) pode ler os arquivos mas não pode alterá-los (isso é intencional).

Crie o arquivo de configuração do Lacuna PSC a partir do template fornecido:

mkdir /etc/lacuna-psc
cp /usr/share/lacuna-psc/config-templates/linux/appsettings.conf /etc/lacuna-psc/
chown -R root:lacuna-psc /etc/lacuna-psc
chmod -R a=,u+rwX,g+rX /etc/lacuna-psc
Note

Arquivos de configuração só podem ser lidos por membros do grupo lacuna-psc e só podem ser alterados por usuários com permissões elevadas. Isso é importante para proteger informações sigilosas armazenadas no arquivo de configuração dos demais usuários da máquina.

Gere um certificado para assinar tokens de OAuth

Gere um certificado auto-assinado para assinar os tokens de OAuth emitidos pela aplicação:

dotnet /usr/share/lacuna-psc/Lacuna.Psc.Site.dll -- gen-cert "Patorum PSC" "" /etc/lacuna-psc/issuer.pfx
chown -R root:lacuna-psc /etc/lacuna-psc && chmod -R a=,u+rwX,g+rX /etc/lacuna-psc

Configure as raízes confiáveis

Edite o arquivo de definição das raízes confiáveis:

mkdir /var/lacuna-psc/trustarbitrators
touch /var/lacuna-psc/trustarbitrators/psc-trust.json
chown -R lacuna-psc:lacuna-psc /var/lacuna-psc
nano /var/lacuna-psc/trustarbitrators/psc-trust.json

Insira as raízes confiáveis conforme abaixo:

{
  "Version": "2019-05-09",
  "StandardPkis": [
    "Brazil",
    "Italy",
    "Peru"
  ],
  "TrustedRoots": [
    "MIIFzDC...",
    "MIIFzDC..."
  ]
}
  • O campo Version deve ser mantido
  • A coleção StandardPkis pode conter Brazil, Italy ou Peru denotando que as raízes desses países devem ser consideradas confiáveis
  • A coleção TrustedRoots pode conter certificados confiáveis adicionais de AC raiz em formato Base64
Warning

Este arquivo não suporta comentários

Configure o Lacuna PSC

Edite o arquivo de configuração e siga as instruções nele para configurar sua instância do Lacuna PSC:

nano /etc/lacuna-psc/appsettings.conf

Na seção [General], para preencher o parâmetro EncryptionKey gere uma chave de 256 bits para cifrar dados sensíveis armazenados no banco de dados:

openssl rand -base64 32

Na seção [Amplia], para preencher o parâmetro ApiKey é preciso criar uma aplicação na sua instância do Amplia e gerar uma chave de API para a aplicação:

  1. Autentique-se na sua instância do Amplia
  2. Clique em Aplicações no menu lateral, em seguida em Adicionar
  3. Preencha um nome e selecione a conta na qual os certificados devem ser emitidos (não escolha o Sys Admin)
  4. Marque o papel Worker
  5. Clique em Criar
  6. Clique em Chaves, depois em Adicionar
  7. Preencha alguma descrição e, no campo Expiração, escolha "Nunca expira"
  8. Clique em Criar
  9. Copie a chave de API gerada (esse valor não pode ser recuperado posteriormente)

Siga os passos em Configuração de OpenID Connect para preencher a seção [Oidc].

Preencha os demais parâmetros de acordo com as instruções presentes no arquivo de configuração.

Configurar um daemon

Crie o arquivo de definição do serviço:

touch /etc/systemd/system/lacuna-psc.service
nano /etc/systemd/system/lacuna-psc.service

Digite o seguinte:

[Unit]
Description=Lacuna PSC

[Service]
WorkingDirectory=/usr/share/lacuna-psc
ExecStart=/usr/bin/dotnet Lacuna.Psc.Site.dll
Restart=always
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=lacuna-psc
User=lacuna-psc
Environment=ASPNETCORE_ENVIRONMENT=Linux
Environment=ASPNETCORE_URLS=http://+:5003
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]
WantedBy=multi-user.target

Salve o arquivo, habilite o serviço e inicie-o:

systemctl enable lacuna-psc
systemctl start lacuna-psc
systemctl status lacuna-psc

A saída esperada é semelhante a:

* lacuna-psc.service - Lacuna PSC
   Loaded: loaded (/etc/systemd/system/lacuna-psc.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2019-07-07 05:50:04 UTC; 4min 22s ago
 Main PID: 10960 (dotnet)
    Tasks: 31 (limit: 2319)
   CGroup: /system.slice/lacuna-psc.service
           └─10960 /usr/bin/dotnet Lacuna.Psc.Site.dll

...

Dec 04 12:45:08 server.patorum.com lacuna-psc[32562]: Hosting environment: Production
Dec 04 12:45:08 server.patorum.com lacuna-psc[32562]: Content root path: /usr/share/lacuna-psc
Dec 04 12:45:08 server.patorum.com lacuna-psc[32562]: Now listening on: http://localhost:5003
Dec 04 12:45:08 server.patorum.com lacuna-psc[32562]: Application started. Press Ctrl+C to shut down.
Hint: Some lines were ellipsized, use -l to show in full.

Se necessário, reinicie o serviço: systemctl restart lacuna-psc

Para testar se o servidor do Lacuna PSC está rodando, execute:

curl http://localhost:5003/api/system/info

A saída esperada é algo como:

{"productName":"Lacuna PSC","productVersion":"...","spaVersion":"...","timestamp":"..."}

Configurar um servidor proxy reverso

Note

Se você preferir usar o Apache ao invés do Nginx, veja este artigo.

Instale o Nginx (se ainda não estiver instalado)

apt-get install nginx

Teste a instalação do Nginx:

curl -I http://localhost/

Verifique as primeiras linhas da saída, que devem ser similares a:

HTTP/1.1 200 OK
Server: nginx/...
...

Desabilite o site padrão do Nginx:

rm /etc/nginx/sites-enabled/default

Crie um arquivo de configuração para o site do Lacuna PSC:

touch /etc/nginx/sites-available/lacuna-psc
nano /etc/nginx/sites-available/lacuna-psc

Digite o seguinte, substituindo o valor do item server_name pelo domínio do site:

server {
    listen        80;
    server_name   psc.patorum.com;
    location / {
        proxy_pass         http://localhost:5003;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection keep-alive;
        proxy_set_header   Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
    }
}
Tip

Idealmente, a configuração do site deve conter as entradas ssl_certificate e ssl_certificate_key com o certificado SSL válido. Essa configuração está fora do escopo dessas instruções.

Ative o site:

ln -sf /etc/nginx/sites-available/lacuna-psc /etc/nginx/sites-enabled/lacuna-psc

Teste a configuração do Nginx e recarregue-a:

nginx -t
nginx -s reload

Teste o site:

curl -H "Host: psc.patorum.com" http://localhost/api/system/info
Warning

Em ambientes de produção, é essencial realizar também a configuração de Firebase App Check e reCAPTCHA para proteger a API de abusos

Veja também

  • Atualização do Lacuna PSC em Linux
  • Resolução de problemas
Back to top Copyright © 2015-2020 Lacuna Software