Proteja suas aplicações web e APIs com HTTPS

Assessoria de Imprensa

05 abr 2021

Caro Cliente,

Proteja suas aplicações web e APIs com HTTPS

Um “S” a mais que faz toda a diferença na segurança do seu site
 
O Protocolo Seguro de Transferência de Hipertexto (tradução em português para a sigla em inglês HTTPS) é um protocolo de comunicação da Internet que protege a integridade e o sigilo dos dados entre o computador do usuário e o site que disponibilizamos. Todo usuário espera segurança e privacidade quando usa um site. Por isso a Solus recomenda a nossos clientes adotar o HTTPS para proteger a conexão dos usuários ao seu site, independentemente do conteúdo que há nele.
Os dados enviados com HTTPS estão protegidos pelo protocolo Transport Layer Security (
TLS), que fornece três camadas principais de proteção:

  1. Criptografia. Os dados, tanto os enviados quanto os recebidos, são criptografados para serem protegidos de intrusos. Isso significa que, enquanto o usuário navega em um site, ninguém pode "escutar" as conversas, acompanhar as atividades em várias páginas e nem roubar essas informações.
  2. Integridade dos dados. Qualquer modificação nos dados durante a transferência é detectada. Se houver tentativa de alterar ou corromper os dados, tendo ou não a intenção, não passará despercebido.
  3. Autenticação. É a prova de que os usuários estão se comunicando com o site certo. A autenticação protege contra ataques "man-in-the-middle", isso traz mais confiança do usuário, gerando credibilidade.

E como colocar em prática o HTTPS?

Para implementar o uso do HTTPS você vai precisar de um certificado de segurança confiável. O certificado é emitido por uma autoridade de certificação, que realiza um processo para verificar se o endereço da Web pertence realmente à sua organização.

Com o certificado em mãos você pode configurar cada um dos sites, aplicações ou APIs para trafegar com o protocolo HTTPS individualmente, conforme instruções de cada servidor de aplicação (GLASSFISH, TOMCAT, IIS, APACHE e etc.). No entanto, esse tipo de abordagem pode dar muito trabalho toda vez que você precisar atualizar o certificado. Por isso recomendamos o uso do NGINX como proxy reverso, permitindo que os acessos externos sejam trafegados via HTTPS e internamente via HTTP.

Configurando o NGINX no Linux

Aqui sugerimos a instalação através do Docker e Docker-compose. Se preferir usar outro método, utilize a documentação oficial do 
NGINX.
Como exemplo iremos operar o serviço do WEB_PRESTADOR, que atualmente roda em um servidor apache sob o domínio 
http://prestador.operadora.com.br e IP interno 192.168.0.2. Ao final do texto este serviço será acessado de forma segura pelo endereço https://prestador.operadora.com.br.

Crie a estrutura de arquivos conforme a imagem abaixo:



Copie os arquivos certificado.crt e certificado.key (adquiridos em uma certificadora autorizada) dentro do diretório /docker/nginx/certs .
Edite o arquivo docker-compose.yml e coloque o conteúdo a seguir:

 

version: "3"
 
services:
  nginx:
    container_name: "nginx"
    image: nginx
    restart: always
    ports:
      - 443:443   
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
      - ./config:/etc/nginx/conf.d
      - ./logs:/var/log/nginx
      - ./certs:/etc/nginx/certs     

 
Edite o arquivo nginx.conf e coloque o conteúdo a seguir:
 

user  nginx;
worker_processes  1;
 
error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;
 
 
events {
    worker_connections  1024;
}
 
http { 
    include       /etc/nginx/mime.types;
    default_type text/html;
    tcp_nodelay on;
   
    client_max_body_size 0;
   
          limit_conn_zone $binary_remote_addr zone=addr:100m;
    limit_conn addr 1000;
          limit_conn_zone $binary_remote_addr zone=perip:100m;
          limit_conn_zone $server_name zone=perserver:100m;
          limit_req_zone $binary_remote_addr zone=one:100m rate=1r/s;
   
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
 
    access_log  /var/log/nginx/access.log  main;
 
    sendfile        on;
    #tcp_nopush     on;
 
    keepalive_timeout  65;
 
    #gzip  on;
 
    include /etc/nginx/conf.d/*.conf;
}

 
Dentro da pasta config crie o arquivo default.conf e coloque o conteúdo a seguir:
 

# redirecionamento para o ambiente seguro caso haja tentativa de acesso via HTTP, porta 80
server {
    listen 80 default_server;
    server_name prestador.operadora.com.br;
    return 301 https://$host$request_uri;
}
 
server {
    listen       443 ssl;
    server_name  prestador.operadora.com.br;
 
    #
    ssl_certificate        /etc/nginx/certs/certificado.crt;
    ssl_certificate_key    /etc/nginx/certs/certificado.key;
 
    location / {
        proxy_pass http://192.168.0.2;
    }          
}      

 
Salve todos os arquivos e execute o comando abaixo no diretório /docker/nginx:
$ docker-compose up –build
Uma vez configurado o servidor NGINX, libere no firewall o acesso externo à porta 443:
prestador.operadora.com.br:443 -> 192.168.0.2:443

Feito isso, basta acessar o serviço WEB_PRESTADOR utilizando SSL.

Qualquer dúvida, estamos à disposição!

compartilhe