Pular para o conteúdo principal

Instalação do Rest PKI Core em Rocky Linux

Para instalar uma instância on-premises do Rest PKI Core em Rocky Linux, siga os passos abaixo. Para outras plataformas, clique aqui.

Pré-requisitos​

Instale o ASP.NET Core Runtime 10.0​

info

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

Instale o pacote do ASP.NET Core Runtime, disponível no repositório AppStream:

dnf install aspnetcore-runtime-10.0

Para testar a instalação, execute:

dotnet --list-runtimes

A saída esperada é semelhante a:

Microsoft.AspNetCore.App 10.0.* [*/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 10.0.* [*/dotnet/shared/Microsoft.NETCore.App]
dica

Para outras versões do sistema operacional e outras formas de instalar o ASP.NET Core Runtime, veja esta página

Instale o Rest PKI Core​

Crie um usuário local para executar a instância do Rest PKI Core:

mkdir /var/restpkicore
useradd --system --home-dir /var/restpkicore restpkicore
chown restpkicore:restpkicore /var/restpkicore

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

mkdir /usr/share/restpkicore
curl -O https://cdn.lacunasoftware.com/restpkicore/restpkicore-5.0.0.tar.gz
tar xzf restpkicore-5.0.0.tar.gz -C /usr/share/restpkicore
chmod -R a=,u+rwX,go+rX /usr/share/restpkicore
observação

Os arquivos do site podem ser lidos por qualquer usuário, mas só podem ser alterados pelo usuário root. Isso significa que o usuário da aplicação (restpkicore) pode ler os arquivos, mas não pode alterá-los, o que é intencional.

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

mkdir /etc/restpkicore
cp /usr/share/restpkicore/config-templates/linux/appsettings.conf /etc/restpkicore/
chown -R root:restpkicore /etc/restpkicore
chmod -R a=,u+rwX,g+rX /etc/restpkicore
observação

Os arquivos de configuração só podem ser lidos por membros do grupo restpkicore e só podem ser alterados pelo usuário root. Isso é importante para proteger contra acessos não autorizados os dados sensíveis armazenados nos arquivos de configuração.

Configure o Rest PKI Core​

Edite o arquivo de configuração para configurar sua instância do Rest PKI Core:

nano /etc/restpkicore/appsettings.conf

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

openssl rand -base64 32

Ainda na seção [General], para preencher a configuração RootPasswordHash, escolha uma senha forte para o acesso root ao dashboard e calcule o hash dela:

dotnet /usr/share/restpkicore/Lacuna.RestPki.Site.dll -- hash-root-pass
observação

Se quiser habilitar o gerenciamento de usuários, deixe a configuração RootPasswordHash em branco e, em vez disso, siga os passos de Configuração de OpenID Connect

Preencha as demais configurações de acordo com as instruções do arquivo de configuração.

Configure um daemon​

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

touch /etc/systemd/system/restpkicore.service
nano /etc/systemd/system/restpkicore.service

Digite o seguinte:

[Unit]
Description=Rest PKI Core

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

[Install]
WantedBy=multi-user.target

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

systemctl enable restpkicore
systemctl start restpkicore
systemctl status restpkicore

A saída esperada é semelhante a:

* restpkicore.service - Rest PKI Core
Loaded: loaded (/etc/systemd/system/restpkicore.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/restpkicore.service
└─10960 /usr/bin/dotnet Lacuna.RestPki.Site.dll

...

Dec 04 12:45:08 server.patorum.com restpkicore[32562]: Hosting environment: Production
Dec 04 12:45:08 server.patorum.com restpkicore[32562]: Content root path: /usr/share/restpkicore
Dec 04 12:45:08 server.patorum.com restpkicore[32562]: Now listening on: http://localhost:5004
Dec 04 12:45:08 server.patorum.com restpkicore[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 restpkicore

Para testar se a instância do Rest PKI Core está em execução, execute:

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

A saída esperada é algo como:

{"productName":"Lacuna Rest PKI Core","productVersion":"1.x.x","spaVersion":"...","timestamp":"..."}

Configure um servidor proxy reverso​

observação

Se preferir usar o Apache em vez do Nginx, veja este artigo.

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

yum install nginx
systemctl enable nginx.service
systemctl start nginx.service

Teste se o Nginx está em execução:

curl -I http://localhost/

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

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

Edite a configuração do Nginx:

nano /etc/nginx/nginx.conf

Remova ou comente (com #) toda a seção server, localizada logo abaixo da cláusula include /etc/nginx/conf.d/*.conf;. Depois de comentar a seção, o arquivo de configuração deve ficar semelhante a este:

...

http {
...

# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;

# server {
# listen 80 default_server;
# listen [::]:80 default_server;
# server_name _;
# root /usr/share/nginx/html;
#
# # Load configuration files for the default server block.
# include /etc/nginx/default.d/*.conf;
#
# location / {
# }
#
# error_page 404 /404.html;
# location = /40x.html {
# }
#
# error_page 500 502 503 504 /50x.html;
# location = /50x.html {
# }
# }

...
}

Crie um arquivo de configuração de site para o Rest PKI Core:

touch /etc/nginx/conf.d/restpkicore.conf
nano /etc/nginx/conf.d/restpkicore.conf

Digite o seguinte, substituindo o domínio do dashboard no item server_name pelo seu próprio domínio:

server {
listen 80;
server_name localhost restpkicore.yourcompany.com;
location / {
proxy_pass http://localhost:5004;
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;
}
}
dica

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

Permita que o Nginx acesse o serviço do Rest PKI Core:

setsebool -P httpd_can_network_connect on

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

nginx -t
nginx -s reload

Teste o site:

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

Libere o tráfego HTTP e HTTPS no seu sistema (se ainda não estiver liberado):

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --reload

Veja também​

Ver em Markdown