2010-01-19 11 views
3

J'ai écrit une application ASP.NET MVC qui permet à l'utilisateur de spécifier son propre domaine personnalisé. J'ai IIS configuré pour envoyer toutes les demandes au site Web par défaut, donc je n'ai pas besoin d'utiliser les en-têtes d'hôte. Tout fonctionne parfaitement. Le seul problème est SSL.Plusieurs sites Web avec une application SSL

Je sais que cette question a été posée plusieurs fois dans de nombreux forums mais les réponses sont généralement contradictoires ou parlent en absolu comme (cela ne peut être fait). Ce n'est pas vraiment une option pour moi. Ce que je cherche ici, ce sont des options; Je suis ouvert à non conventionnel :).

J'ai vu quelques réponses constructives qui suggèrent d'utiliser le serveur ISA en tant que proxy SSL. Quelqu'un en sait-il plus là-dessus? Ou est-ce que quelqu'un a configuré cela et a eu du succès? Fondamentalement, je veux fournir à mes utilisateurs un moyen de demander un CSR à partir de l'application, aller acheter et télécharger un certificat SSL, revenir à mon application et télécharger le certificat émis par une société de certification autorisée.

Je voudrais faire cela sans avoir à fournir des adresses IP séparées aux clients qui veulent utiliser un domaine personnalisé et ssl sur leur site. C'est simplement parce que mon application est hébergée sur le nuage Amazon et ils ne veulent pas me donner un gros bloc d'adresses IP.

Mon application peut être hébergée sur IIS6 ou IIS7 si cela fait une différence.

SOLUTION: Merci pour toute votre aide sur ce gars. Je n'ai certainement pas compris ce problème aussi bien que je le fais maintenant. Je pense que ma solution pour l'instant sera de générer un certificat générique et de forcer mes clients à utiliser clientname.someshareddomain.com s'ils veulent une connexion sécurisée. Pour les clients qui ne sont tout simplement pas OK, je vais probablement provisionner une autre adresse IP élastique via l'appel api aux services web amazon, créer un nouveau site web dans IIS et le pointer sur le dossier racine de mon application, puis générer par programme un CSR à partir de nouveau site. Je vais juste devoir travailler sur une sorte d'accord avec Amazon pour me donner un bloc décent d'adresses IP.

+1

Votre question pourrait avoir plus de succès sur serverfault.com – leepowers

Répondre

2

Chaque certificat SSL requiert une adresse IP unique. C'est juste la façon dont la technologie fonctionne:

http://info.ssl.com/Article.aspx?id=10076

Une autre option serait d'acheter un certificat SSL générique pour * .securedomain.com, puis donnent aux utilisateurs un sous-domaine sécurisé comme website1.securedomain.com, website2 .securedomain.com, etc.

Modifier: Il s'agit d'un certificat par adresse IP/port. Ainsi, vous pouvez exécuter plusieurs certificats sur securedomain.com:443, securedomain.com:444, etc.

Edit # 2: Eh bien, eh bien, on dirait qu'il ya au moins un CA qui vend des certificats SSL multi-domaines: http://www.geocerts.com/ssl/tbidmd

+0

Est-ce une chose IIS ou une chose de la technologie. Je connais une autre application qui fait actuellement ce que je dois faire. Zendesk.com vous permet d'entrer votre propre domaine comme support.mydomain.com, puis de générer un CSR. Pinged support.zendesk.com (leur portail de support produit), puis ping mon domaine personnalisé à support.mydomain.com ... ils ont tous les deux la même adresse IP. Comment pensez-vous qu'ils font cela? –

+0

Non, un seul certificat peut contenir plusieurs adresses IP/noms de domaine. Si vous pouvez trouver un CA disposé à émettre un tel certificat est une autre question. Les numéros de port ne font pas partie du certificat. –

+0

@Jeremy avez-vous réellement téléchargé les certificats SSL sur zendesk? Si ce n'est pas le cas, votre support.mydomain.com est simplement un CNAME sur zendesk.com, c'est-à-dire la même adresse IP. Si vous téléchargez les certificats SSL, je pense que zendesk distribue une adresse IP dédiée pour vous. –

1

Bien votre premier obstacle est les domaines multiples et les certificats SSL. Je n'ai pas encore vu cela car IIS ne sait pas comment répondre aux différentes demandes d'hôtes avec des certificats ssl différents.

Si vous voulez faire quelque chose comme Client.SecureYourCompanyName.com .... qui pourrait travailler ...

ou ... et ne pas me lancer pour cela, vous pouvez configurer plusieurs serveurs virtuels chacun avec leur propre SSL et ont une sorte de "équilibrage de charge" comme configuration pour le serveur hôte qui achemine en fonction des noms d'hôtes ...un cauchemar à contrôler mais cela fonctionnerait ...

+0

Oui, je suis conscient de l'utilisation d'un caractère générique avec client.productname.com. Je suis en train de le faire maintenant; Cependant, certains clients ne seront pas satisfaits de cette solution. Je comprends ce que vous dites au sujet du serveur virtuel, mais c'est plus difficile à gérer que plusieurs sites Web pour chaque site client.productname.com. –

2

Ceci est un problème délicat. Le problème de base est que la connexion SSL est établie avant que la connexion HTTP puisse envoyer l'en-tête Host.

Il existe une extension TLS appelée Server Name Indiccation qui est en cours d'adoption, mais qui reste not supported by IIS.

+0

Donc, ceci est une chose IIS. Si je courais Linux avec openSSl ce ne serait même pas un problème? –

+0

Je n'irais pas jusqu'à dire que ce ne serait pas un problème. Tous les navigateurs ne prennent pas en charge SNI. Voir http://en.wikipedia.org/wiki/Server_Name_Indication pour plus de détails. – Yuliy

Questions connexes