Exemple pour un VirtualHost www.netserv.me
on va commencer par créer un certificat
On édite la configuration de ssl pour pouvoir signer des certificats sur 10 ans, au lieu de 1 an par défaut :
nano /etc/ssl/openssl.cnf
on change la ligne default_days en :
default_days = 3650
On crée le Certificat Racine :
cd ~ /usr/lib/ssl/misc/CA.pl -newca
on entre les parametres requis, on choisis un pass phrase de son choix et on laisse “challenge password” vide. Ce certificat racine sert à signer les certificats. Il est localisé dans le répertoire /demoCA.
On crée maintenant une clé privée pour le serveur ainsi qu’un csr (Certificate Signing Request : demande de signature de certificat).
mkdir ~/CERT cd ~/CERT openssl req -new -nodes -keyout netserv-key-www.pem -out netserv-req-www.pem -days 3650
Note : le paramètre le plus important est le Common Name qui doit être le même que le virtualhost dans le cas d'apache. Ici il s’agit de : www.netserv.me
On signe maintenant notre certificat public avec le certificat racine :
cd ~ openssl ca -out CERT/netserv-cert-www.pem -infiles CERT/netserv-req-www.pem
copie des clef :
cd ~ openssl ca -out CERT/netserv-cert-www.pem -infiles CERT/netserv-req-www.pem chmod 400 ~/CERT/* cd CERT/ cat netserv-key-www.pem netserv-cert-www.pem >netserv-certkey-www.pem mkdir /etc/apache2/ssl cp netserv-certkey-www.pem /etc/apache2/ssl/ chmod 600 /etc/apache2/ssl/netserv-certkey-www.pem chmod 400 ~/CERT/*
fichier de conf :
à placer dans /etc/apache2/sites-available
NameVirtualHost *:443 <VirtualHost *:443> ServerAdmin webmaster@netserv.me ServerName www.netserv.me DocumentRoot /home/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /home/www> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all # This directive allows us to have apache2's default start page # in /apache2-default/, but still have / go to the right place # Commented out for Ubuntu #RedirectMatch ^/$ /apache2-default/ </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride AuthConfig Options ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined ServerSignature On SSLEngine On SSLCertificateFile /etc/apache2/ssl/netserv-certkey-www.pem SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown </VirtualHost>
Lancement du virtualhost(debian) :
a2ensite www.netserv.me /etc/init.d/apache2 restart