Implementação https em rede interna

Aqui na empresa que trabalho existe uma rede interna enorme. Mais de 50 computadores acessam 1 servidor que também fica na rede interna e mais 4 acessam da empresa filial, filial essa que acessa o sistema pela internet que conhecemos.

Porém esses acessos acontecem no http normal, sem encriptação e eu gostaria de estar fazendo essa implementação do https/tls, mas todas as pesquisas que eu faço não atendem aos meus critérios (no caso critérios de rede interna, por exemplo, aceitar um certificado feito pra um endereço IP e o que mais que for que seja que já não lembro mais)

Tentei seguir este artigo:

mas o artigo gera certificados pro nginx/apache e eu preciso que seja gerado pro IIS (que aceita só certificado do tipo .pfx)

usei este artigo:

pra criar um certificado em .pfx, importei pro IIS e pro computador cliente, mas o Chrome ainda continua acusando de o site não ser seguro.

tentei seguir este víde:

mas ele só explica como importar um certificado pro IIS e nada em o que tem que ser feito no lado do cliente.

tentei seguir este:

artigo mas o chrome ainda acusa o site de não ser seguro, o erro dito pelo chrome é que o certificado foi criado pro endereço ip que eu to acessando, mas ele não conseguiu provar que era esse endereço ip mesmo e logo em seguida me diz que o certificado foi feito para o endereço ip que eu coloquei… uma tristeza.

Com certificados auto-assinados (criados dentro do próprio IIS), eu só consigo acessar do computador servidor, nos computadores clientes mesmo com o certificado importado eu não consigo fazer a conexão segura.

Alguém teria coragem de me explicar como funciona uma conexão assim e como eu faria isso acontecer? Com o teórico bem detalhado e com um tutorial de como configurar isso respeitando os critérios de, ser usável no IIS e em rede local + rede externa?

2 curtidas

Https em servidores locais pode ser um grande problema, vamos comçar do começo para entender o porque, se você já mecheu com sites (online), você pode notar que maior pate deles usam um certificado terçerizado, (Ex: o do diolinux se vc clicar no cadeado ele mostra que foi emitido pela Cloundflare), isso tem um motivo, os navegadores (vem com eles ou eles usam a do sistema), normalmente tem uma lista de provendores validos (creio que há algum tipo de checagem com o proprio servidor que emitiu o SSL), quando vc cria manualmente como você esta fazendo, não existe um provendor então navegadores apontam como inseguro, em si o certificado esta ok e funcionando, porem os navegadores não tem como provar isso, até onde lembro na maior parte dos browsers tem como importar um certificado CA para que ele não reclame mais.

Ex:

  • Firefox: Configurações → Privacidade e segurança → Exibir certificados → Importar
  • Chrome: Configurações → Privacidade e segurança → Segurança ->Gerenciar Certificados → Importar

A questão é que você terá que fazer isso em todos os computadores que você conecta ao servidor.

1 curtida

até que com isso eu não me importo, eu gostaria de entender onde tá a lacuna no meu conhecimento, o porque o que eu to fazendo não tá funcionando

1 curtida

Algo util que achei: How to Get SSL HTTPS for Localhost | Engineering Education (EngEd) Program | Section

(Lembre sempre de trocar o que ele fala de 127.0.0.1 por o IP do servidor)

Procure por: localhost https SSL

1 curtida

Isso não é tão complicado quanto parece, fiz um diagrama para tentar te ajudar.

Lado servidor:

  • criar uma CA e gerar um certificado SSL assinado com ela (cuidado com o arquivo SAN);
  • importar o certificado SSL gerado para o servidor ISS e reiniciar;

Lado cliente:

  • importar apenas a CA para todas às máquinas que vão realizar o acesso;
  • limpar cache e acessar o site novamente;

Se você fez tudo certo, deverá funcionar sem maiores problemas. Como recomendação, siga este artigo How to Create Your Own SSL Certificate Authority for Local HTTPS Development.

1 curtida

nem parei pra pensar nisso, ao invés de importar o certificado que eu fiz, importar o certificado da autoridade certificadora (que eu também fiz kkkkkkkk)

deu super certo aqui, agora tem 1 coisa que não tá facilitando minha vida, o certificado da CA que o openssl fez foi criado com a extensão .pem, mas nós sabemos que a Microsoft adora um DIY

eu gostaria de saber como eu faço pra converter esse .pem pra algum formato compatível com o Windows (ou que lance aquele importador de certificados do Windows, seria o próprio .pfx?), o Windows até que importa arquivo .pem, mas é só pela linha de comando com o certutil… não que isso seja um problema, mas eu tentei fazer um script aqui e não funcionou

Nunca precisei converter formatos, mas ssl - How to convert .pem into .key? - Stack Overflow deve funcionar. Também é possível fazer essa conversão na hora de gerar o certificado, alterando o “output” de .pem para o outro formato.

consgeui de novo, kkkkkkkk
eu importei o .pem normal com o certutil e exportei como .cer (que é o que o Windows usa aparentemente), e usei ele em ambiente de teste pra ver se funciona e funcionou

Este tópico foi fechado automaticamente 3 dias depois da última resposta. Novas respostas não são mais permitidas.