wiki..
HTTPS avec APACHE

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