Thursday, January 26, 2017

Utiliser plusieurs certificats SSL sur un seul serveur apache avec une seul adresse ip

Utiliser plusieurs certificats SSL sur un seul serveur apache avec une seul adresse ip


Utiliser plusieurs certificats SSL sur un seul serveur apache avec une seul adresse ip

 

Le but de l?article du jour est d?utiliser plusieurs certificats SSL sur une mˆme machine via le SNI (ce qui ‚tait impossible il y a quelques ann‚es de cela cf. wikipedia, le premier patch ‚tant sorti en 2004, les premiŠres impl‚mentation sur les serveurs apache se sont fait sur la version 2.2.12 en Juillet 2009).



Depuis peu donc, on peut s?amuser … installer plusieurs certificats SSL, mais ‡a n‚cessite un tout petit peu de configuration (vraiment un tout petit peu en fait).
Les outils n‚cessaire :
  • Des certificats SSL (de pr‚f‚rences valide c?est gratuit chez startSSL)
  • Un serveur apache de version 2.2.12 ou sup‚rieur
  • La librairie openssl 0.9.8j ou sup‚rieur
La configuration niveau apache (il faut bien entendu avoir activer le mod ssl), et copier les fichiers crt et key que vous on fournit vos fournisseurs de certificats sur le serveur dans un dossier accessible … apache (chez moi /etc/apache2/cert/).
il faut modifier la config ® /etc/apache2/ports.conf ¯ et faire en sorte que le ifmodule du mod_ssl ressemble … ‡a :
  1. <IfModule mod_ssl.c>
  2.     NameVirtualHost *:443
  3.     Listen 443
  4. </IfModule>
G‚n‚ralement, le NameVirtualHost n?est pas mis dans la configuration par d‚faut, il faut donc le rajouter.
Puis enfin cr‚er le fichier de configuration s?occupant de vos certificats et de les servir suivant le nom de domaine demand‚ (chez moi blog.gaetan-grigis.eu et un-autre-sous-domaine.gaetan-grigis.eu).
  1. <VirtualHost *:443>
  2.    ServerName aitibourek.blogspot.com
  3.    DocumentRoot /var/www/blogaitibourek
  4.    SSLEngine on
  5.    SSLProtocol all -SSLv2
  6.    SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM
  7.    SSLCertificateFile /etc/apache2/cert/blog.crt
  8.    SSLCertificateKeyFile /etc/apache2/cert/blog.key
  9.    SSLCertificateChainFile /etc/apache2/cert/sub.class1.server.ca.crt
  10.    SSLCACertificateFile /etc/apache2/cert/ca.crt
  11.    SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
  12.    CustomLog /var/log/apache2/ssl_request.log
  13.       "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x "%r" %b"
  14. </VirtualHost>
  15. <VirtualHost *:443>
  16.    ServerName un-autre-sous-domaine.aitibourek.fr
  17.    DocumentRoot /var/www/un-autre-sous-domaine
  18.    SSLEngine on
  19.    SSLProtocol all -SSLv2
  20.    SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM
  21.    SSLCertificateFile /etc/apache2/cert/un-autre-sous-domaine.crt
  22.    SSLCertificateKeyFile /etc/apache2/cert/un-autre-sous-domaine.key
  23.    SSLCertificateChainFile /etc/apache2/cert/sub.class1.server.ca.crt
  24.    SSLCACertificateFile /etc/apache2/cert/ca.crt
  25.    SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
  26.    CustomLog /var/log/apache2/ssl_request.log
  27.       "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x "%r" %b"
  28. </VirtualHost>
Et voil…, si vous avez utilis‚ StartSSL, vous avez accŠs … deux sous-domaines diff‚rents avec des certificats valide diff‚rent sur une seule et mˆme machine ? elle est pas belle la vie ??

NB: On peut bien s–r en cr‚er autant qu?on veut, c?est pas limit‚ … deux sous-domaines. 


Available link for download