Cada subdomínio precisa de seu próprio certificado SSL?

41

Estou criando um servidor websocket que permanecerá ativo ws.mysite.example. Quero que o servidor de soquete da Web seja criptografado por SSL e também por domain.exampleSSL. Preciso comprar um novo certificado para cada subdomínio que eu criar? Preciso de um endereço IP dedicado para cada subdomínio que eu criar? Provavelmente terei mais de um subdomínio.

Estou usando o NGINX e o Gunicorn em execução no Ubuntu.

user974407
fonte

Respostas:

44

Vou responder isso em duas etapas ...

Você precisa de um certificado SSL para cada subdomínio?

Sim e não, depende. Seu certificado SSL padrão será para um único domínio, por exemplo www.domain.example. Existem diferentes tipos de certificados que você pode além do certificado padrão de domínio único: certificados curinga e de vários domínios.

  • Um certificado curinga será emitido para algo como *.domain.examplee os clientes tratarão isso como válido para qualquer domínio que termine com domain.example, como www.domain.exampleou ws.domain.example.

  • Um certificado de vários domínios é válido para uma lista predefinida de nomes de domínio. Isso é feito usando o campo Nome alternativo do assunto do certificado. Por exemplo, você pode dizer a uma CA que deseja um certificado de vários domínios para domain.examplee ws.mysite.example. Isso permitiria que fosse usado para os dois nomes de domínio.

Se nenhuma dessas opções funcionar para você, você precisará ter dois certificados SSL diferentes.

Preciso de um IP dedicado para cada subdomínio?

Novamente, este é um sim e não ... tudo depende do seu servidor de aplicativos / web. Eu sou um cara do Windows, então vou responder com exemplos do IIS.

  • Se você estiver executando o IIS7 ou mais antigo, será obrigado a vincular certificados SSL a um IP e não poderá ter vários certificados atribuídos a um único IP. Isso faz com que você precise ter um IP diferente para cada subdomínio se estiver usando um certificado SSL dedicado para cada subdomínio. Se você estiver usando um certificado de vários domínios ou um curinga, poderá obter um único IP, pois você só tem um certificado SSL para começar.

  • Se você estiver executando o IIS8 ou posterior, o mesmo se aplica. No entanto, o IIS8 + inclui suporte para algo chamado Server Name Indication (SNI). O SNI permite vincular um certificado SSL a um nome de host, não a um IP. Portanto, o nome do host (nome do servidor) usado para fazer a solicitação é usado para indicar qual certificado SSL o IIS deve usar para a solicitação.

  • Se você usar um único IP, poderá configurar sites para responder a solicitações de nomes de host específicos.

Eu sei que o Apache e o Tomcat também têm suporte para o SNI, mas não os conheço o suficiente para saber quais versões o suportam.

Bottom Line

Dependendo do seu aplicativo / servidor da Web e que tipo de certificado SSL você pode obter, ditará suas opções.

pkeenan
fonte
Eu estou usando gunicorn e nginx no Ubuntu.
precisa saber é o seguinte
Nesse caso, o SNI deve estar disponível desde que o OpenSSL (para nginx) seja compatível com o suporte ao SNI. At de acordo com o link na resposta do GomoX.
pkeenan
Alguns certificados de subdomínio único listam o domínio principal como uma alternativa, portanto, você pode descobrir www.domain.com e domain.com em um certificado em um endereço IP. Tenha cuidado em considerar seu público-alvo ao considerar o SNI: O IE no XP não suporta, o que afetará você com alguns usuários corporativos, nem alguns navegadores móveis antigos, como o Android padrão, pelo menos até a 2.3.5, que você deve considerar se você segmentar dispositivos móveis (aqui estão muitos dispositivos Android executando versões antigas).
David Spillett
@pkeenan - Seria bom se a resposta fosse atualizada para refletir os recursos técnicos que suportam nomes e domínios de host sem nomes de host - helpdesk.ssls.com/hc/en-us/articles/…
Motivado
> os clientes tratarão isso como válido para qualquer domínio que termine com 'domínio.com', como 'www.domínio.com' ou 'ws.domínio.com'. Isso me leva a acreditar que também seria válido abc.def.domain.com, é esse também o caso?
Jeff
7

Você pode obter um certificado para cada subdomínio, um certificado de subdomínio múltiplo ou um certificado curinga (para *.yoursite.example).

No entanto, eles geralmente custam um pouco mais do que os certificados regulares e, como você compartilha um único certificado, eles geralmente não são a melhor opção do ponto de vista da segurança, a menos que você hospede um anything.mydomain.exampletipo de aplicativo em que eles são a única opção viável.

Você também não precisa de vários endereços IP se tiver um servidor da Web compatível com SNI . Dito isto, o SNI é suportado apenas em navegadores modernos (o IE6 e abaixo não funcionam com ele). Versões recentes do Nginx e Apache suportam SNI de forma transparente (basta adicionar hosts virtuais habilitados para SSL).

GomoX
fonte
O que você quer dizer com "não é a melhor opção do ponto de vista da segurança"?
Motivado
4
Um único certificado compartilhado para todos os seus hosts transforma qualquer violação de um certificado em uma ameaça de segurança no nível do domínio, em vez de afetar apenas o subdomínio ao qual o certificado foi anexado. Por exemplo, o certificado usado para www.yoursite.com, que é uma instalação do WordPress, seria o mesmo para payments.yoursite.com, que é um aplicativo de processamento seguro de cartão de crédito. Se o primeiro vazar, o segundo será comprometido.
GomoX 26/04
0

Você precisará de um certificado separado para cada subdomínio ou poderá adquirir um certificado curinga ( *.domain.example) - mais caro, mas faz sentido se estiver hospedando muitos subdomínios.

Em relação aos IPs, isso depende de como você configura seu servidor. Você pode usar regras de nome de host para atender a vários sites do mesmo IP ou usar IPs exclusivos para cada um. Existem prós e contras nos dois métodos.

Jim G.
fonte