portail:installation-developpement:certifier-les-sites

Passer les sites en https

Il va nous falloir répeter pour les 3 sites (multisite.test, www.formater.test et en.formater.test), les opérations suivantes.

Je les décris pour multisite.test

Plusieurs modifications sont à réaliser dans le fichier /srv/ssl/openssl.cnf (ou bien il faudrait créer unfichier de configuration par domaine)

srv/ssl $ sudo nano /srv/ssl/openssl.cnf
  • Décommenter la ligne req_extensions = v3_req
  • Dans la section [ v3_req ] ajouter la ligne subjectAltName = @alt_names
  • Plus loin, ou à la fin, ajouter une section [ alt_names]:

 [ alt_names ]  
 DNS.1 = multisite.test

Ici on va créer deux fichiers : la clé privée /srv/ssl/multisite.test/multisite.test.key.pem et le certificat associé /srv/ssl/multisite.test/multisite.test.csr.pem

On crée le répertoire pour multisite.test

/srv/ssl$ sudo mkdir multisite.test
/srv/ssl$ cd multisite.test

On commence par générer une clé privée, ( il sera demandé une phrase pass à retenir par exemple : “je suis multisite.test”)

/srv/ssl/multisite.test$ sudo openssl genrsa -des3 -out multisite.test.key.pem 4096
Generating RSA private key, 4096 bit long modulus
...............................................................++
..................................++
e is 65537 (0x010001)
Enter pass phrase for multisite.test.key.pem:
Verifying - Enter pass phrase for multisite.test.key.pem:

On créé une clé sans mot de passe

/srv/ssl/multisite.test$ sudo openssl rsa -in multisite.test.key.pem -out multisite.test.key.nopass.pem
Enter pass phrase for multisite.test.key.pem:
writing RSA key

On génère ensuite le certificat, la petite phrase de ma clé (multisite.test.key.pem) est demandée, dans Common Name on met le domaine, mais ce n'est pas obligatoire car il utilise les alt_names du fichier /srv/ssl/openssl.cnf

/srv/ssl/multisite.test$ sudo openssl req -config ../openssl.cnf -new -key multisite.test.key.pem -out multisite.test.csr.pem
Enter pass phrase for multisite.test.key.pem:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [FR]:
State or Province Name (full name) [Some-State]:France
Locality Name (eg, city) []:Paris
Organization Name (eg, company) [Pole Terre Solide - ForMaTer]:
Organizational Unit Name (eg, section) []:Formate
Common Name (e.g. server FQDN or YOUR name) []:multisite.test
Email Address []:pointal@ipgp.fr
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

On fait maintenant valider notre certificat par l'autorité (nous-même) Tout d'abord une petite modification à apporter au fichier /srv/ssl/openssl.cnf

/srv/ssl/multisite.test$ sudo nano ../openssl.cnf

Dans la section [ CA_default ] on décommente la ligne copy_extensions = copy

On signe la demande, cette fois-ci, la petite phrase de l'autorité “je suis l'autorité” (celle de la clé /srv/ssl/private/cakey.pem) sera demandée,

/srv/ssl/multisite.test$ sudo openssl ca -config ../openssl.cnf -policy policy_anything -out multisite.test.cert.pem -infiles multisite.test.csr.pem
Using configuration from ../openssl.cnf
Enter pass phrase for /srv/ssl/private/cakey.pem:
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 2 (0x2)
        Validity
            Not Before: Jan 23 09:34:35 2018 GMT
            Not After : Jan 23 09:34:35 2019 GMT
        Subject:
            countryName               = FR
            stateOrProvinceName       = France
            localityName              = Paris
            organizationName          = Pole Terre Solide - ForMaTer
            organizationalUnitName    = Formate
            commonName                = multisite.test
            emailAddress              = pointal@ipgp.fr
        X509v3 extensions:
            X509v3 Basic Constraints: 
                CA:FALSE
            Netscape Comment: 
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier: 
                44:2C:5F:39:94:FA:DA:1F:1D:F6:74:E0:3A:3C:CF:9D:B2:90:45:0F
            X509v3 Authority Key Identifier: 
                keyid:D5:58:B3:DF:12:40:2C:41:18:F5:36:22:F9:C9:88:20:59:46:8E:5F
            X509v3 Subject Alternative Name: 
                DNS:multisite.test
            X509v3 Key Usage: 
                Digital Signature, Non Repudiation, Key Encipherment
Certificate is to be certified until Jan 23 09:34:35 2019 GMT (365 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

Il n'y a qu'à créer un nouveau site dans /etc/apache2/sites-available branché sur le port 403

$ sudo nano /etc/apache2/sites-available/multisite.test-ssl.conf

<VirtualHost *:443>  
    ServerName multisite.test  
    DocumentRoot /var/www/multisite.test 
    SSLEngine On
    SSLCertificateFile /srv/ssl/multisite.test/multisite.test.cert.pem
    SSLCertificateKeyFile /srv/ssl/multisite.test/multisite.test.key.nopass.pem
    SSLProtocol all -SSLv2 
    <Directory />    
        Options FollowSymLinks  
        AllowOverride All  
    </Directory>  
    <Directory /var/www/multisite.test>  
        Options Indexes FollowSymLinks MultiViews  
        AllowOverride All  
        Order allow,deny  
        allow from all  
    </Directory>  
</VirtualHost>

On active ensuite le mode ssl et notre nouveau site et redémarre apache

$ sudo a2enmod ssl
$ sudo a2ensite multisite.test-ssl
$ sudo service apache2 restart
Et enfin, on peut accéder au site [ https://multisite.test](https://multisite.test), en acceptant une exception de sécurité.
  • portail/installation-developpement/certifier-les-sites.txt
  • Dernière modification : 2019/12/03 16:33
  • de 127.0.0.1