Estou implementando um aplicativo multilocatário em que meu aplicativo hospeda e serve documentação técnica para o produto de um inquilino.
Agora, a abordagem que eu estava pensando era - eu sediar a documentação em docs.<tenant>.mycompany.com
e pedir meu inquilino para configurar um registro CNAME DNS para apontar docs.tenantcompany.com
para docs.<tenant>.mycompany.com
.
Desejo que o site seja ativado para SSL com o certificado do meu inquilino. Eu queria entender se minha empresa de locatários tem um certificado SSL curinga, ela funcionará com essa configuração ou será necessário adquirir um novo certificado SSL docs.tenantcompany.com
?
*.mycompany.com
*.example.com
não corresponderádocs.tenantname.example.com
! O curinga é válido apenas para um 'subdomínio'; que irá corresponderdocs-tenantname.example.com
, por exemplo. O S3 da Amazon é um bom exemplo disso: o*.s3.amazonaws.com
certificado falha ao acessar um bucket com um período, comowww.example.com
(que termina com um nome de host comowww.example.com.s3.amazonaws.com
); esses nomes de bucket são necessários para a hospedagem na Web S3.Respostas:
O nome do certificado deve corresponder ao que o usuário digitou no navegador, não ao registro DNS 'final'. Se o usuário digitar
docs.tenantcompany.com
, o seu certificado SSL deverá cobri-lo.Se
docs.tenantcompany.com
for um CNAME parafoo.example.com
, o certificado não precisa cobrirfoo.example.com
apenasdocs.tenantcompany.com
.fonte
A resposta de Jason está correta. Mas apenas para esclarecer um pouco os termos aqui, "redirecionamento de DNS" é um pouco impróprio. O DNS possui registros CNAME (também conhecidos como aliases), que são um nome apontando para outro nome. Mas não é um redirecionamento. A tradução de nome para nome para IP acontece em segundo plano e o seu navegador se importa apenas com o nome inicial.
A única coisa que redireciona são os servidores da Web em que o servidor está explicitamente dizendo ao seu navegador para ir para outro lugar. Se o seu servidor web foi realmente fazendo um redirecionamento para outro nome, você iria realmente precisa certs para ambos os nomes porque o seu navegador acabaria por ser a conexão com os dois separadamente.
fonte
Server A
domínio comexample.com
. Eu criei um site para ele e o mantive emServer B
. Meu cliente configurou seu DNSA Record
que apontadog.example.com
para o endereço IP do meu servidorServer B
. Agora meu cliente está recebendo SSL paradog.example.com
. Minha pergunta é: meu cliente precisa fornecer a certificação SSL para que eu o coloque dentroServer B
? Ou ele apenas tem que colocá-loServer A
? Ou o que mais devemos fazer? Nós dois estamos confusos sobre isso, obrigado!dog.example.com
apontar diretamente para o IP do seu servidor, então sim. Seu servidor deve conter o certificado e a chave privada para esse nome. O servidor A no seu exemplo é irrelevante.dog.example.com
e me enviou o certificado e a chave privada. Coloquei esses dentroServer B
e configurei o Nginx para usá-los. E tudo funciona bem agora. Te agradece!Resposta curta: Não. Se a empresa locatária tiver um curinga no nome
*.tenantcompany.com
, isso é suficiente para instalar no servidor para cobrir acessos por esse nome. Se você quer fazer isso ou não, é outra história.Um certificado no nome
docs.<tenant>.mycompany.com
(por exemplo, um certificado direto ou um curinga*.<tenant>.mycompany.com
) é inútil se o acesso for sempre feito por meio dodocs.tenantcompany.com
nome.Resposta mais longa
Suponha que você navegue
https://docs.tenantcompany.com
em um navegador razoável. O navegador executa o TLS pelo protocolo HTTP. Ele se importa especificamente com duas coisas; naquela:o subsistema DNS do navegador e do sistema operacional retorna o endereço IP de um host adequado, que está executando um servidor da web em uma porta adequada em outro local da rede local ou da internet. Para tráfego HTTPS (seguro), a porta padrão é, a
443
menos que seja substituído de outra forma no URL.Quando o handshake TLS ocorre entre o navegador e o servidor remoto, o servidor apresenta um certificado confiável que permite fornecer um serviço TLS no endereço solicitado (
docs.tenantcompany.com
).DNS
O navegador vê o DNS como uma caixa preta. Ele faz uma chamada para uma biblioteca DNS adequada para solicitar um mapeamento de um nome de domínio totalmente qualificado (FQDN) para um endereço IP adequado (v4 ou v6). Não importa como ele obtém esse endereço IP. Se houver 20
CNAME
aliases no DNS entre o registro original e umA
ouAAAA
, o resolvedor de DNS os seguirá até que um endereço IP seja obtido.TLS
Quando o navegador executa a TLS aperto de mão , ele precisa verificar se o servidor está se comunicando com está autorizado a fornecer um serviço de site seguro no FQDN solicitado:
docs.tenantcompany.com
.Lembre-se: o navegador não se preocupa
docs.<tenant>.mycompany.com
- o resolvedor de DNS abstraiu todo o conhecimento da indireção por meio de umCNAME
registro.Nosso método de autorizar o servidor a servir sessões seguras
docs.tenantcompany.com
é por meio de um certificado SSL assinado por uma autoridade para a qual a confiança anterior foi estabelecida no armazenamento de certificados raiz do navegador. Essa nem sempre é a forma mais forte de autenticação de servidor para cliente - muitos podem dar errado no modelo de CA centralizado - mas é o melhor que temos no momento.Existem mais duas advertências aqui:
Partilha de chaves
Muitos fornecedores comerciais de certificados SSL assinam apenas uma única solicitação de assinatura, o que efetivamente vincula o certificado curinga a uma única chave privada. A empresa inquilina pode não gostar de compartilhar isso fora de sua organização, pois qualquer pessoa que possua a chave privada pode obviamente comprometer a comunicação com os outros sistemas seguros da empresa inquilina.
Alguns fornecedores assinam várias solicitações de assinatura de certificado no mesmo certificado, o que permite que um único certificado curinga seja instalado em vários servidores e sistemas sem compartilhar a chave privada entre eles.
Mascarada
Se a empresa inquilina fornecer uma cópia do certificado curinga (compartilhando a chave privada ou assinando seu próprio CSR), você pode disfarçar como
<anydomain>.tenantcompany.com
, quebrando uma proteção importante que garante a integridade dos servidores identificados notenantcompany.com
espaço para nome DNS. Essa pode ser uma má posição para você e a empresa arrendatária serem inseridas, de uma perspectiva legal / de responsabilidade.fonte