J'ai déjà créé un certificat SSL pour mon serveur, mais puis-je utiliser le SSL uniquement pour un site Web spécifique.
Par exemple à l'intérieur de /var/www
J'ai beaucoup de dossiers Web et je veux que le site Web "A" utilise HTTPS et les autres non HTTPS.
Comment configurer?
wiki Apache a une belle page sur SSL avec des hôtes virtuels utilisant SNI . Ils décrivent la configuration étape par étape. J'écrirai ici les points principaux.
Vous avez besoin d'OpenSSL version 0.9.8f ou ultérieure. Si vous utilisez Ubuntu Hardy Heron (8.04) ou une version ultérieure, vous obtiendrez la bonne version. De plus, OpenSSL devrait avoir TLSExtensions activé. C'est le cas par défaut depuis la version 0.9.8k (Lucid, 10.04). Votre version Apache devrait avoir un support SNI. Jetez un œil à votre error.log
:
[warn] Init: les hôtes virtuels SSL basés sur le nom ne fonctionnent que pour les clients avec prise en charge de l'indication de nom de serveur TLS (RFC 4366)
Si vous trouvez que le message au-dessus de SNI est activé et si vous voyez le message ci-dessous, SNI n'est pas intégré.
Vous ne devez pas utiliser d'hôtes virtuels basés sur le nom en conjonction avec SSL
Dans votre configuration par défaut, TLSv1 doit être défini comme protocole pris en charge. Recherchez la variable SSLProtocol
. Si vous ne trouvez aucun paramètre, vous pouvez ajouter:
SSLProtocol All -SSLv2
Cela ajoute la prise en charge de toutes les versions connues de SSL et TLS, mais pas de SSL version 2.
Vous devez maintenant configurer votre hôte virtuel et peut-être également activer la prise en charge SSL (Sudo a2ensite ssl
plus redémarrage Apache):
<virtualhost *:443>
SSLEngine On
SSLCertificateFile /path/to/your/sslcert
DocumentRoot /path/your/webcontent
</virtualhost>
Définissez en outre SSLStrictSNIVHostCheck on
dans votre configuration Apache ou vhost. Vous pouvez maintenant redémarrer votre Apache et aurez probablement un support SSL. Cependant, SNI a de nombreux pièges. Si vous rencontrez des erreurs, vérifiez votre error.log. Il pourrait vous donner des conseils sur ce qui n'a pas fonctionné.
La documentation Apache en contient description détaillée de leur support SSL .