Vários sites com um aplicativo SSL

3

Eu escrevi um aplicativo ASP.NET MVC que permite ao usuário especificar seu próprio domínio personalizado. Eu tenho IIS configurado para enviar todas as solicitações para o site padrão, então eu não preciso usar cabeçalhos de host. Tudo funciona perfeitamente. O único problema é o SSL.

Eu sei que esta pergunta foi feita várias vezes em muitos fóruns, mas as respostas geralmente entram em conflito ou falam em absolutos como (isso não pode ser feito). Isso não é realmente uma opção para mim. O que estou procurando aqui são algumas opções; Estou aberto ao não convencional:).

Eu tenho visto algumas respostas construtivas que sugerem o uso do servidor ISA como um proxy SSL. Alguém sabe mais sobre isso? Ou alguém configurou isso e teve sucesso?

Basicamente, quero fornecer aos meus usuários uma maneira de solicitar um CSR do aplicativo, comprar e fazer o download de um certificado SSL, voltar ao meu aplicativo e carregar o certificado emitido por uma empresa de certificação autorizada.

Eu gostaria de fazer isso sem precisar fornecer endereços IP separados para clientes que desejam usar um domínio personalizado e ssl em seu site. Isso ocorre simplesmente porque meu aplicativo está hospedado na nuvem da Amazon e não está interessado em me fornecer um grande bloco de endereços IP.

Minha aplicação pode ser hospedada no IIS6 ou no IIS7.

SOLUÇÃO: Obrigado por toda sua ajuda sobre esse pessoal. Eu certamente não entendi esse problema tão bem quanto eu agora. Acho que minha solução, por enquanto, será gerar um certificado curinga e forçar meus clientes a usar clientname.someshareddomain.com, se quiserem uma conexão segura. Para clientes que simplesmente não concordam com isso, provavelmente provisionarei outro endereço IP elástico por meio de uma chamada api a serviços da Web amazon, criar um novo site no IIS e apontá-lo para a pasta raiz do meu aplicativo e gerar um CSR de forma programática a partir desse novo site. Eu só vou ter que fazer algum tipo de acordo com a Amazon para me dar um bloco decente de endereços IP.

    
por Jeremy Seekamp 20.01.2010 / 00:24

3 respostas

10

Lamento muito que você não goste da resposta "você não pode fazer isso", mas não pode fazer o que deseja fazer. A tecnologia simplesmente não permite que isso funcione do jeito que você quer.

Veja por que.

O protocolo HTTP permite que mais de um servidor compartilhe um endereço IP. Ele faz isso através do cabeçalho do host HTTP / 1.1:

Host: servername.example.com

O handshake SSL acontece antes do handshake HTTP. Isso significa que o servidor não tem idéia de qual certificado apresentar ao cliente com base em qual servidor o cliente deseja.

Portanto, tente o quanto quiser, mas vários certificados não podem ser usados em um único endereço IP. Não importa o quanto você tente, nem o quanto isso não seja uma opção para você.

    
por 20.01.2010 / 00:35
2

Como Michael disse, se algo é impossível, bater o pé e fazer beicinho não muda as coisas.

Colocar certificados SSL separados em endereços IP separados não é um problema, tecnologicamente falando; é apenas uma questão de provisionamento (que é uma questão simples de programação) e ter um provedor de rede que entende as necessidades de empresas de grande porte e está disposto a pré-alocar um bloco de endereços decente para domínios SSL.

No entanto, há outra opção, conhecida como " Indicação do nome do servidor ", em que o navegador pode informar ao servidor o que vhost que deseja conversar no tempo de negociação do SSL, para que o servidor possa apresentar o certificado correto. Infelizmente, o suporte para isso não é universal; de acordo com a página da Wikipedia acima, nem o IIS 6 nem o 7 podem lidar com isso no lado do servidor, e você precisa estar executando o Vista para usá-lo com o IE no lado do cliente (Firefox, Opera e Chrome já o suportam há algum tempo ).

Então, se você está disposto a mudar para um servidor web decente, e alienar qualquer parte de sua base de usuários ainda está usando navegadores desatualizados em sistemas operacionais Microsoft mais antigos, então você pode usar isso. Ninguém parece querer irritar Tia Tillie executando o IE 5.5 no Windows 98, embora ...

    
por 20.01.2010 / 00:52
0

Se o problema é fornecer sessões seguras (e não cada cliente possuir seu próprio certificado), por que não tirar o fardo e a complexidade da imagem usando um certificado SSL curinga?

    
por 20.01.2010 / 01:37