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