Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
TECNICO
TECNICO
  • Project overview
    • Project overview
    • Details
    • Activity
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
  • Analytics
    • Analytics
    • CI/CD
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Create a new issue
  • Jobs
  • Issue Boards
Collapse sidebar
  • FINDFACE
  • TECNICOTECNICO
  • Wiki
  • Configuração de SSL

Configuração de SSL · Changes

Page history
Update Configuração de SSL authored Dec 09, 2024 by Erick Rocha's avatar Erick Rocha
Hide whitespace changes
Inline Side-by-side
Showing with 337 additions and 4 deletions
+337 -4
  • Configuração-de-SSL.md Configuração-de-SSL.md +337 -4
  • No files found.
Configuração-de-SSL.md
View page @ 970e0b1b
:construction: Estamos trabalhando nisso :construction_worker:
Vamos preparar o FindFace para trabalhar com SSL/HTTPS. Leia com atenção as orientações e comandos Vamos preparar o FindFace para trabalhar com SSL/HTTPS. Leia com atenção as orientações e comandos
1. No servidor principal criaremos o diretorio de configurações do Nginx com o subdiretorio que conterá o SSL(certificado e chave). 1. No servidor principal criaremos o diretorio de configurações do Nginx com o subdiretorio que conterá o SSL(certificado e chave).
...@@ -18,7 +16,7 @@ Você será questinado sobre algumas informações sobre seu servidor a fim de g ...@@ -18,7 +16,7 @@ Você será questinado sobre algumas informações sobre seu servidor a fim de g
### FindFace Video Worker ### FindFace Video Worker
Ao usar CA-certificate, adicione o caminho do certificado aos volumes do serviço docker(no caso o findface-video-worker), adicione o comando de instalação e atulização do CA-certificate no serviço findface-video-worker. Ao usar CA-certificate, adicione o caminho do certificado aos volumes do serviço docker(no caso o findface-video-worker), adicione o comando de instalação e atulização do CA-certificate no serviço mesmo.
1. Abra o arquivo docker-compose.yaml 1. Abra o arquivo docker-compose.yaml
```bash ```bash
...@@ -63,5 +61,340 @@ Ao usar CA-certificate, adicione o caminho do certificado aos volumes do serviç ...@@ -63,5 +61,340 @@ Ao usar CA-certificate, adicione o caminho do certificado aos volumes do serviç
3. Reinicie todos os containers
```sh
cd /opt/findface-multi/
sudo docker compose restart
```
#### FindFace Nginx
Configure o Nginx do Findface (no servidor principal) para usar o SSL. Abra o arquivo de configuração em **/opt/findface-multi/configs/findface-multi-ui/nginx-site.conf**. Aplique as seguintes modificações no arquivo
1. Adicione a nova seção **server {...}** que contem a regra de substituição. Na linha **rewrite ^(.*) https://...**, substitua **ip_address_server_ffmulti** pelo endereço de IP onde o FindFace esta instalado.
```conf
server {
listen 80;
server_name my-example-domain.com www.my-example-domain.com;
rewrite ^(.*) https://ip_address_server_ffmulti$1 permanent;
access_log off;
}
```
2. Descomente as seguintes linhas na já existente seção **server {...}**
```conf
# listen 80 default_server;
# listen [::]:80 default_server;
```
3. Adicione as seguintes linhas, incluindo os caminhos para o certificado e a chave. Adicione na já existente seção **server{...}**
```conf
listen 443 ssl;
ssl_certificate /etc/nginx/ssl/my-example-domain.com.crt;
ssl_certificate_key /etc/nginx/ssl/my-example-domain.com.key;
```
Um exemplo de configuração do arquivo (/opt/findface-multi/configs/findface-multi-ui/nginx-site.conf) é mostrado abaixo:
> Veja com atenção as mudanças realizadas e cheque com suas configurações
```conf
upstream ffsecurity {
server 127.0.0.1:8002;
}
upstream ffsecurity-ws {
server 127.0.0.1:8003;
}
upstream ffsecurity-django {
server 127.0.0.1:8004;
}
upstream audit {
server 127.0.0.1:8012;
}
upstream identity-provider {
server 127.0.0.1:8022;
}
map $http_upgrade $ffsec_upstream {
default "http://ffsecurity-ws";
"" "http://ffsecurity";
}
server {
listen 80;
server_name my-example-domain.com www.my-example-domain.com;
rewrite ^(.*) https://my-example-domain.com$1 permanent;
access_log off;
}
server {
# listen 80 default_server;
# listen [::]:80 default_server;
listen 443 ssl;
ssl_certificate /etc/nginx/ssl/my-example-domain.com.crt;
ssl_certificate_key /etc/nginx/ssl/my-example-domain.com.key;
root /var/lib/findface-security;
autoindex off;
server_name _;
location = / {
alias /usr/share/findface-security-ui/;
try_files /index.html =404;
}
location /static/ {
}
location /uploads/ {
# internal; # uncomment if you intend to enable OVERPROTECT_MEDIA
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' '*';
add_header 'Access-Control-Allow-Headers' '*';
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
add_header 'Access-Control-Max-Age' 2592000;
location ~ /card/(?<card_type>[a-zA-Z]+)/(?<card_id>[0-9]+)/attachments/(.*)$ {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' '*';
add_header 'Access-Control-Allow-Headers' '*';
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
add_header 'Access-Control-Max-Age' 2592000;
add_header 'Content-Disposition' 'attachment';
add_header 'Content-Security-Policy' 'sandbox';
}
}
location /ui-static/ {
alias /usr/share/findface-security-ui/ui-static/;
}
location /doc/ {
alias /opt/findface-security/doc/;
}
location /api-docs {
alias /opt/findface-security/rapidoc;
index index.html;
}
location /api-docs/ {
alias /opt/findface-security/rapidoc/;
try_files $uri index.html =404;
}
location ~ /videos/(?<video_id>[0-9]+)/upload/(.*)$ {
client_max_body_size 15g;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://ffsecurity;
}
location @django {
internal;
client_max_body_size 1g;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_read_timeout 5m;
proxy_pass http://ffsecurity-django;
}
# location /v1/video-liveness {
# add_header Access-Control-Allow-Headers "*" always;
# add_header Access-Control-Allow-Methods "*" always;
# add_header Access-Control-Allow-Origin "*" always;
#
# if ($request_method = 'OPTIONS') {
# return 204;
# }
#
# client_max_body_size 300m;
# proxy_set_header Host $http_host;
# proxy_set_header X-Forwarded-For $remote_addr;
# proxy_set_header X-Forwarded-Proto $scheme;
# proxy_pass http://127.0.0.1:18301;
# proxy_read_timeout 5m;
# }
location / {
client_max_body_size 1g;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass $ffsec_upstream;
proxy_read_timeout 5m;
location ~ ^/(cameras|videos|vms|external-vms).*/stream/?$ {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://ffsecurity;
}
location ~ ^/streams/(.*)$ {
internal;
proxy_pass $1$is_args$args;
}
location /audit-logs {
proxy_pass http://audit;
}
location ~ ^/(auth|ad_groups|cproauth|groups|permissions|sessions|users|user-face|device-blacklist-records) {
proxy_pass http://identity-provider;
}
}
# location /users/me/ad {
#
# proxy_pass <FFmulti_address>/auth/ad_login/; e.g http://127.0.0.1/auth/ad_login/;
# proxy_method POST;
#
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header Host $http_host;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header Authorization $http_authorization;
# proxy_pass_header Authorization;
# proxy_no_cache 1;
# proxy_cache_bypass 1;
#
# auth_gss on;
# auth_gss_realm <REALM>; # e.g. TESTNTL.LOCAL;
# auth_gss_keytab <path/to/file.keytab>; # e.g. /var/lib/web.keytab
# auth_gss_service_name <service_name>; # e.g. HTTP/web.testntl.local;
# auth_gss_allow_basic_fallback on;
# }
}
```
4.Copie o arquivo genérico de configuração do Nginx chamado nginx.conf que esta dentro do container em um dos serviços do FindFace para sua máquina
```conf
sudo docker cp findface-multi-findface-multi-ui-1:/etc/nginx/nginx.conf /etc/nginx/nginx.conf
```
5. No arquivo de configuração que acabamos de copiar (/etc/nginx/nginx.conf), ache a seção **SSL Settings** e adicione as seguintes linhas
```conf
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1h;
```
6. No arquivo **/opt/findface-multi/docker-compose.yaml**, monte, a pasta do SSL (/etc/nginx/ssl) e o arquivo de configuração que copiamos, no serviço **findface-multi-findface-multi-ui-1**
- Abra o docker compose
```yaml
sudo vi /opt/findface-multi/docker-compose.yaml
```
- Localize o serviço findface-multi-ui e configure-o para que se pareça com o exemplo abaixo
```yaml
findface-multi-ui:
depends_on: [findface-multi-legacy]
image: docker.int.ntl/ntech/multi/multi/ui:ffmulti-2.1.3
network_mode: service:pause
restart: always
volumes: ['./configs/findface-multi-ui/nginx- site.conf:/etc/nginx/conf.d/default.conf:ro', './data/findface-multi-legacy/uploads:/var/lib/findface-security/uploads','/etc/nginx/ssl:/etc/nginx/ssl', '/etc/nginx/nginx.conf:/etc/nginx/nginx.conf:ro']
```
#### Findface Multi Legacy
Edite o arquivo de configuração **/opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.py**
1. No parametro **ROUTER_URL** e **IMAGE_CROP_URL**, substitua o __http://__ por __https://__
```bash
sudo vi /opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.py
```
```conf
...
'ROUTER_URL': 'https://127.0.0.1',
'IMAGE_CROP_URL': 'https://127.0.0.1',
...
```
2. Se você usa CA-certificate, especifique em **ROUTER_URL** o domínio no qual o certificado foi criado
```conf
'ROUTER_URL': 'https://my-example-domain.com'
```
3. Adicione https://my-example-domain.com ao parametro **EXTERNAL_ADDRESS**
```conf
...
EXTERNAL_ADDRESS = 'https://my-example-domain.com'
...
```
4. Adicione as seguintes linhas, **no caso de uma configuração customizada e em que as fotos estão tendo problemas para recarregar na pagina do dominio**
```conf
USE_X_FORWARDED_HOST = True
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
```
5. Reinicie o FindFace
```
cd /opt/findface-multi
sudo docker-compose restart
```
#### Configure os hosts
1. Abra o arquivo /etc/hosts/ no servidor onde o FindFace Multi esta instalado e adicione a seguinte linha
```bash
sudo vi /etc/hosts
```
```conf
127.0.0.1 my-example-domain.com
```
2. No sistema onde você usa um navegador para interagir com o FindFace Multi, navegue até o arquivo hosts. Adicione o endereço de IP do servidor que o findface está instalado no lugar de **ip_address_server_ffmulti**. Substitua **my-example-domain.com** com o seu nome de domínio.
- No linux
```sh
sudo vi /etc/hosts
```
```conf
*ip_address_server_ffmulti* my-example-domain.com
```
- No Windows, execute/pesquise **C:\Windows\System32\drivers\etc\hosts** como um administrador. E adicione a seguinte linha no arquivo hosts:
```conf
*ip_address_server_ffmulti* my-example-domain.com
```
3. Reinicie o FindFace
```sh
cd /opt/findface-multi/
sudo docker-compose restart
```
#### Câmeras / Upload de Vídeo(Parte Web)
Se você usa o certificado auto gerenciado, desative das câmeras a verificação do SSL
- Navegue em **Video Sources > Cameras ou Uploads**
- Clique na câmera
- Na aba **Advanced**, desmarque a opção **Verify the SSL certificate**
:construction: Estamos trabalhando nisso :construction_worker: ![Exemplo de Verificação SSL](uploads/2e957946d1376e126672959e9dd07639/image.png)
Clone repository

Home

  1. Executável

Guia de Instalação e Manutenção

  1. Preparação da Maquina
  2. Instalação
  3. Migrar fotos e videos para outro disco
  4. Liveness - Obrigatorio para licenças que não tem o componente
  5. Cluster de objetos e Rastreamento de Interações

Guias Extras

  1. Configuração de HTTPS/SSL

Solução de Problemas

  1. FindFace está com a tela branca

  2. Coloquei outra licença, mas não atualizou