Recentemente comecei a trabalhar como engenheiro de sistemas. No entanto, ainda faltam alguns princípios básicos, especificamente em relação aos certificados SSL/TLS e sua relação com o DNS.
Aqui está o caso de uso:
- Uma empresa com a qual negociamos possui seu próprio site e domínios, com seus próprios certificados SSL. Chamaremos o domínio que desejo usar aquidados.exemplo.com
- Hospedamos nosso próprio site e domínios, com nossos próprios certificados SSL. Chamaremos nosso domínio que desejo usar aquinossosdados.ourexample.com
- O que a empresa com quem trabalhamos quer é que quando você forhttps://data.example.com, você realmente obtém o conteúdo dehttps://ourdata.ourexample.com
Para isso, entendo que existem duas possibilidades:
- (bem claro para mim) Crie um redirecionamento no nível do servidor web via nginx/apache: isso implica que ambos os domínios ainda têm seus próprios certificados SSL, mas é apenas uma questão de escrever algumas linhas em um arquivo de configuração, nada a ver com qualquer configuração de DNS.
- (é aqui que começa a ficar complicado para mim) Peça à empresa com quem negociamos que nos forneça informações de RSE (https://en.wikipedia.org/wiki/Certificate_signing_request) para que possamos gerar um arquivo CSR... a partir da chave privada que usamos para gerar nossos próprios certificados SSL...? Depois entregamos o CSR e eles pagam pelo seu próprio certificado SSL. Eles podem então criar um novo CNAME que redirecionarádados.exemplo.com.paraourdata.ourexample.com.. O que me disseram é que o CSR é uma espécie de chave pública, e é por isso que podemos facilmente entregá-lo a outra pessoa. Mas mesmo que esta descrição descreva corretamente o processo, estou honestamente perdido quanto ao que acontece, onde e por que isso é feito.
Finalmente, algo que notei no caso em que o CSR foi gerado do nosso lado e o CNAME foi criado é que quando vamos parahttps://data.example.com, vemos o conteúdo dehttps://ourdata.ourexample.come o URL mostrado no navegador permanecehttps://data.example.com. Não tenho certeza se isso está relacionado a alguma configuração do servidor web ou às "configurações" de DNS.
Espero que o que descrevi esteja um tanto claro. Caso contrário, avise-me e tentarei fornecer mais detalhes.
Nota: já tentei encontrar algumas respostas para isso, mas embora tenha entendido algumas coisas aqui e ali, ainda não está 100% claro.
Obrigado, SilentSib
Responder1
Presumo data.example.com
que será hospedado emseuinstalações e example.com
não quer que seus clientes vejam que você está prestando os serviços.
Se for esse o caso, você só precisa de dois Apachehosts virtuaisou dois nginxServidores virtuaisque estão configurados para servir o mesmo conteúdo.
E os certificados? Não é muito complicado se você entender os conceitos decriptografia de chave pública.
Basicamente (em um dos algoritmos mais implantados,RSA), você tem duas chaves A
e B
. Os dados criptografados com A
só podem ser descriptografados com B
( A
não é possível descriptografá-los) e vice-versa. Você distribui um deles e ligachave pública, o outro é mantido em segredo e chamadochave privada. A chave pública é usada para criptografar dados que somente você pode descriptografar, a chave privada também pode ser usada para assinatura: criptografando uma sequência de bytes pré-acordada (o hash de uma mensagem, por exemplo) com a chave privada, todos os outros podem descriptografá-la e verifique se você possui a chave privada.
As outras partes doinfraestrutura de chave públicasão:
- certificados: um arquivo contendo sua chave pública, seu nome de domínio e alguns outros dados, assinado por um confiávelchave privada(cuja chave pública é distribuída e confiável por todos os navegadores). Apenas onome do domínioestá no certificado, e não em quaisquer outros dados
DNS
(bem, você pode pedir para adicionar seu endereço IP ao certificado, se desejar), para que não precise alterá-los quando algo mudar. - CSR: quase o mesmo que um certificado. Ele contém sua chave pública, seu nome de domínio e alguns outros dados, assinados por seuchave privada(para mostrar que você tem a chave). Praticamente as Autoridades de Certificação usam apenas a chave pública do CSR e às vezes o nome de domínio (se não o obtiverem de um formulário HTML).
As chaves privadas são baratas (alguns segundos para serem geradas em um servidor ocupado). É muito improvável que o seu cliente use a mesma chave privada para data.example.com
e example.com
(a menos que tenham ambos os nomes no mesmo certificado). Então:
- Se o seu cliente já possui um certificado para
data.example.com
, peça que lhe enviem o certificado e a chave privada correspondente (de forma segura). Eles não os usarão mais, - Se o seu cliente não tiver um certificado para
data.example.com
, gere umnovochave privada e certifique-a.Nãouse a chave privada para seus outros domínios. Normalmente gera-se uma nova chave privada, mesmo na renovação de um certificado. Se você colocarourdata.example.net
o mesmo certificado, todos verão quem está prestandodata.example.com
serviços. - Você também pode usarVamos criptografarse o seu cliente concordar com os termos. Desta forma você pode ter um certificado válido em questão de segundos e sem custos adicionais.