This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
dev:mise_en_place_d_un_serveur_https [2020/01/10 09:23] rdaulie |
dev:mise_en_place_d_un_serveur_https [2024/04/04 10:19] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | Connectez-vous sous root et allez dans le répertoire de configuration de votre serveur Apache2 / | ||
- | Création du certificat serveur | ||
- | Génération de la clé privée | + | GnuTLS contrairement au plus utilisé mod_ssl est une implémentation libre du protocole SSL pour Apache. |
- | On génère la clef privée avec la commande suivante en définissant un nom de fichier : | + | Il supporte le SNI (Server Name Indication) permettant |
- | <code bash> | + | |
- | openssl genrsa 1024 > servwiki.key | + | |
- | </ | + | |
- | La sortie attendue est la suivante : | + | |
- | <code bash> | + | |
- | Generating RSA private key, 1024 bit long modulus | + | |
- | | + | |
- | | + | |
- | e is 65537 (0x10001) | + | |
- | </ | + | |
- | + | ||
- | Si vous souhaitez que cette clé ait un mot de passe (qui vous sera demandé à chaque démarrage | + | |
- | + | ||
- | Ceci a pour effet de créer une clé SSL (fichier servwiki.key), ne la perdez pas... c'est votre clé privée... (ni éventuellement le mot de passe) ! | + | |
- | Vous pouvez observer son contenu : less servwiki.key | ||
+ | Installation du module | ||
<code bash> | <code bash> | ||
- | -----BEGIN RSA PRIVATE KEY----- | + | sudo apt-get install libapache2-mod-gnutls |
- | MIICXgIBAAKBgQDQG9wvnuLC4aqzaJCAWGA1AxFzg00hjPObhq1mukzsGyuuWBFG | + | |
- | vj/ | + | |
- | 8w/ | + | |
- | AoGAHi0cBW+1k+qjFPbBlUq7UJSMUEKmyYmlvVSPCklTZB0gfVxZzPdDTpEcNks/ | + | |
- | yo+rLFSD9Vsvy/ | + | |
- | ZCf0CAs6wBft3yLU31Qc4WqVM2vTyUH76jebVhxEw8k63OUCQQD/ | + | |
- | ZTPFbzUeAE5rQqqOW4aoMNvM61Yn/ | + | |
- | g1okfogTAkEA0D7pDf/ | + | |
- | FZbjHJ4UcYyYaA8jIrkY+FIJM88YlGbWXwJBAILEdvJ5R/ | + | |
- | En8fw43XI5L0PB7Hxx6KDLVu4XzVYQyahTZBdqR0eMlUNZJBhJE2tO3wi2cCQQCp | + | |
- | JkCFd3es0BrNxqfzlThozRFofcz88za7TldydL0YcFtC4Sb4vWsYizwktZ6jcPEm | + | |
- | rQz8Gl9W7MO+ynwLptB/ | + | |
- | 2LImp/ | + | |
- | -----END RSA PRIVATE KEY----- | + | |
</ | </ | ||
- | Protégez votre fichier en faisant : chmod 400 servwiki.key | + | On n’oublie pas de désactiver le module mod_ssl si présent pour éviter |
- | + | ||
- | De multiples autres options sont possibles mais il est inutile | + | |
- | + | ||
- | A partir de votre clé, vous allez maintenant créer un fichier de demande de signature de certificat (CSR Certificate Signing Request). | + | |
- | + | ||
- | On génère la demande de certificat avec la commande suivante | + | |
<code bash> | <code bash> | ||
- | openssl req -new -key servwiki.key > servwiki.csr | + | sudo a2dismod ssl |
</ | </ | ||
- | + | On active ensuite | |
- | Le système va vous demander de saisir des champs ; remplissez-les en adaptant sauf le champ " | + | |
<code bash> | <code bash> | ||
- | Country Name (2 letter code) [AU]:FR | + | sudo a2enmod gnutls |
- | State or Province Name (full name) [Some-State]: | + | |
- | Locality Name (eg, city) []: | + | |
- | Organization Name (eg, company) [Internet Widgits Pty Ltd]:LLB | + | |
- | Organizational Unit Name (eg, section) []: | + | |
- | Common Name (eg, YOUR name) []: | + | |
- | Email Address []: | + | |
</ | </ | ||
- | Ce n'est pas la peine de saisir d' | + | On doit ensuite redémarrer |
- | + | ||
- | Ceci a pour effet de créer | + | |
- | + | ||
- | Ce fichier contient | + | |
<code bash> | <code bash> | ||
- | -----BEGIN CERTIFICATE REQUEST----- | + | sudo /etc/init.d/apache2 restart |
- | MIIBsTCCARoCAQAwcTELMAkGA1UEBhMCRlIxFTATBgNVBAgTDENvcnNlIGR1IFN1 | + | |
- | ZDEQMA4GA1UEBxMHQWphY2NpbzEMMAoGA1UEChMDTExCMREwDwYDVQQLEwhCVFMg | + | |
- | SU5GTzEYMBYGA1UEAxMPcHJvZi5idHNpbmZvLmZyMIGfMA0GCSqGSIb3DQEBAQUA | + | |
- | A4GNADCBiQKBgQDSUagxPSv3LtgDV5sygt12kSbN/NWP0QUiPlksOkF2NkPfwW/m | + | |
- | f55dD1hSndlOM/5kLbSBo5ieE3TgikF0IktjBWm5xSqewM5QDYzXFt031DrPX63F | + | |
- | vo+tCKTQoVItdEuJPMahVsXnDyYHeUURRWLWwc0BzEgFZGGw7wiMF6wt5QIDAQAB | + | |
- | oAAwDQYJKoZIhvcNAQEEBQADgYEAwwI4UvkfhBvyRrUXtjrLfZXLxZlF9o+URmHJ | + | |
- | ysvrLKfesVBEzdA9mqk1OwIwLfe8Fw2fhip2LGqvcCPxDMoIE/ | + | |
- | DMuy69lPTEB6UtpVKO/ | + | |
- | 4H8qZuk= | + | |
- | -----END CERTIFICATE REQUEST----- | + | |
</ | </ | ||
- | Maintenant, deux choix s' | + | Configuration spécifique |
- | * envoyer | + | Activer |
- | * ou bien signer vous-même | + | Pour activer la possibilité d’avoir plusieurs sites différents utilisant |
- | Ce dernier choix a notre préférence... | + | On édite le fichier |
- | Création du certificat | + | |
- | + | ||
- | Pour signer un certificat, vous devez devenir votre propre autorité de certification, | + | |
- | + | ||
- | La création de la clé privée de l' | + | |
<code bash> | <code bash> | ||
- | openssl genrsa -des3 1024 > ca.key | + | sudo nano / |
</ | </ | ||
- | Ce qui a pour effet de créer la clé privée de l' | ||
- | |||
- | Ensuite, à partir de la clé privée, on crée un certificat x509 pour une durée de validité d'un an auto-signé : | ||
+ | Et ajouter dans la partie < | ||
<code bash> | <code bash> | ||
- | openssl req -new -x509 -days 365 -key ca.key > ca.crt | + | NameVirtualHost *:443 |
</ | </ | ||
- | Il faut saisir la passphrase... puisqu' | + | Création d’un virtualhost |
- | Attention : le nom de " | + | On peut maintenant créer un virtualhost |
- | <code bash> | + | |
- | Country Name (2 letter code) [AU]:FR | + | |
- | State or Province Name (full name) [Some-State]: | + | |
- | Locality Name (eg, city) []: | + | |
- | Organization Name (eg, company) [Internet Widgits Pty Ltd]:LLB | + | |
- | Organizational Unit Name (eg, section) []: | + | |
- | Common Name (eg, YOUR name) []: | + | |
- | Email Address []: | + | |
- | </ | + | |
- | C'est notre certificat d' | + | |
- | La signature du certificat serveur par le CA (Certificate Autority) | + | |
- | La commande qui signe la demande de certificat est la suivante : | + | sudo nano / |
- | <code bash> | + | |
- | openssl x509 -req -in servwiki.csr -out servwiki.crt -CA ca.crt -CAkey ca.key\ | + | |
- | -CAcreateserial -CAserial ca.srl | + | |
- | </ | + | |
- | L' | + | |
- | Il faut saisir la passphrase... | + | Copier dans le presse-papier |
- | Le certificat signé est le fichier " | + | On y ajoute la configuration |
- | <code bash> | + | |
- | Signature ok | + | |
- | subject=/ | + | |
- | Getting CA Private Key | + | |
- | Enter pass phrase for ca.key: | + | |
- | </ | + | |
- | Vous avez maintenant un certificat pour votre serveur se nommant servwiki.crt. | + | |
- | <code bash> | + | |
- | less servwiki.crt | + | |
- | </ | + | |
- | <code bash> | + | |
- | -----BEGIN CERTIFICATE----- | + | |
- | MIICVDCCAb0CAQEwDQYJKoZIhvcNAQEEBQAwdDELMAkGA1UEBhMCRlIxFTATBgNV | + | |
- | BAgTDENvcnNlIGR1IFN1ZDEQMA4GA1UEBxMHQWphY2NpbzEMMAoGA1UEChMDTExC | + | |
- | MREwDwYDVQQLEwhCVFMgSU5GTzEbMBkGA1UEAxMSc2VydmV1ci5idHNpbmZvLmZy | + | |
- | MB4XDTA0MDIwODE2MjQyNloXDTA0MDMwOTE2MjQyNlowcTELMAkGA1UEBhMCRlIx | + | |
- | FTATBgNVBAgTDENvcnNlIGR1IFN1ZDEQMA4GA1UEBxMHQWphY2NpbzEMMAoGA1UE | + | |
- | ChMDTExCMREwDwYDVQQLEwhCVFMgSU5GTzEYMBYGA1UEAxMPcHJvZi5idHNpbmZv | + | |
- | LmZyMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDSUagxPSv3LtgDV5sygt12 | + | |
- | kSbN/ | + | |
- | BWm5xSqewM5QDYzXFt031DrPX63Fvo+tCKTQoVItdEuJPMahVsXnDyYHeUURRWLW | + | |
- | wc0BzEgFZGGw7wiMF6wt5QIDAQABMA0GCSqGSIb3DQEBBAUAA4GBALD640iwKPMf | + | |
- | pqdYtfvmLnA7CiEuao60i/ | + | |
- | kSK6OOauBHItgiGI7C87u4EJaHDvGIUxHxQQGsUM0SCIIVGK7Lwm+8e9I2X0G2GP | + | |
- | 9t/ | + | |
- | -----END CERTIFICATE----- | + | |
- | </ | + | |
- | Il faut maintenant installer le certificat de l' | + | |
- | Installation du certificat d' | + | |
- | Pour installer sur votre navigateur le certificat de l' | + | < |
+ | < | ||
+ | ServerAdmin webmaster@localhost | ||
+ | ServerName domaine.tld | ||
+ | |||
+ | DocumentRoot /var/www | ||
+ | < | ||
+ | Options FollowSymLinks | ||
+ | AllowOverride None | ||
+ | </ | ||
+ | < | ||
+ | Options Indexes FollowSymLinks MultiViews | ||
+ | AllowOverride None | ||
+ | Order allow,deny | ||
+ | allow from all | ||
+ | </ | ||
+ | |||
+ | ScriptAlias /cgi-bin/ / | ||
+ | < | ||
+ | AllowOverride None | ||
+ | Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch | ||
+ | Order allow, | ||
+ | Allow from all | ||
+ | </ | ||
+ | |||
+ | ErrorLog ${APACHE_LOG_DIR}/ | ||
+ | |||
+ | # Possible values include: debug, info, notice, warn, error, crit, | ||
+ | # alert, emerg. | ||
+ | LogLevel warn | ||
+ | |||
+ | CustomLog ${APACHE_LOG_DIR}/ | ||
+ | </ | ||
+ | </ | ||
- | * " | ||
- | * Sous Windows, un clic droit ou double-clic sur le fichier devrait vous permettre | + | NB : Attention pour le moment, nous n’avons toujours pas créé |
+ | Modification | ||
- | * Unordered List Itemsur Mozilla : | ||
- | | ||
- | ---- | ||
- | * Edition/ | ||
- | * Bouton de commande : gestion des certificats | ||
- | * Onglet : autorité | ||
- | * Bouton de commande : importer | ||
- | * etc... | ||
- | Il ne reste plus maintenant qu'à configurer apache2. |