Chez oim, forum libreChez oim, forum libre

favicon Google Recherche avancée  

RIP Johnny Halliday

RIP Johnny : 1943 - 2017


Pages: [1]   En bas

Auteur Sujet: Tuto, LetsEncrypt: Installer un certificat de sécurité SSL sous Windows ou Linux  (Lu 586 fois)

alex

  • Administrateur
  • Dictionnaire ambulant
  • ********
  • Hors ligne Hors ligne
  • Sexe: Homme
  • Messages: 15.289
  • Proprio officiel chez oim !




Introduction
Risque de sécurité avec les clés RSA
Commençons
Préparation pour Windows
Préparation pour Linux
Créer les clés et le certificat CSR
Obtenir le certificat SSL
Installer le certificat
Observer le contenu du certificat SSL
Exemple de script Bash pour renouvellement automatique du certificat Let's Encrypt sous Linux.
Exemple de script Batch pour renouvellement automatique du certificat Let's Encrypt sous Windows (avec WAMP).


Mise à jour du 3 décembre 2017
Après Linux, je me suis forcé et un exemple de script Batch pour renouvellement automatique du certificat Let's Encrypt sous Windows a été ajouté.


Nouveau, c'est pour très bientôt ! (ce tuto sera mis à jour à ce moment là) :)
En janvier 2018, Lets Encrypt délivrera des certificat Wildcards ! :ic:
Cela signifie que Lets Encrypt délivrera des certificats pour votre domaine mais aussi tous ses sous domaines, même si ils n'existent pas encore à la création du certificat !
Un certificat wilcards se présente pour supporter les domaines sous la forme *.example.com
Vivement 2018 ! :)


(Haut de Page)
CE TUTO EST CONÇU POUR LES SERVEURS APACHE !
Vous pouvez le suivre pour obtenir votre certificat, mais les paramétrages sont destinés à APACHE !

ATTENTION ! Ce tuto est de niveau "geek à l'aise avec le SSL et la configuration d'un serveur Apache !"
Plus vous en saurez, mieux ce sera. Si vous êtes un noob, il est possible d'y arriver, mais ce ne sera pas facile pour vous !
De toute façon, comme d'hab, pour les questions, insultes, menaces, vous pouvez répondre. C'est pas la peine d'être inscrit. :)


Salut tous,

Dans ce nouveau tuto, je vais essayer de vous aider à créer un certificat de requête (CSR) afin d'obtenir un vrai certificat de sécurité auprès de Lets Encrypt.
Ensuite, nous installerons ce certificat sur notre serveur pour pouvoir bénéficier d'une connexion sécurisée.
Lets Encrypt est aujourd'hui une autorité de certification autorisée à délivrer des certificats de sécurité gratuits reconnus par tous les navigateurs web.
Le seul vrai problème de Lets Encrypt et qu'ils délivrent des certificats valables 90 jours seulement. A la longue, quand vous serez familiarisé avec la façon de faire, ce ne sera plus gênant, d'autant plus qu'il est possible d'automatiser le renouvellement.

Il existe des outils gratuits entièrement automatisés (comme "certbot", par exemple) pour obtenir et renouveler les certificats de sécurité.
Ces outils ont un gros inconvénient. Ils fonctionnent sur des config "classiques".
Ici, vous le verrez, nous avons une configuration "exotique", avec des sous domaines, qui ne fonctionnerait pas avec certbot ou n'importe quel autre outil automatique.


Ce tuto est parfaitement valable pour Linux !
Il vous suffit d'avoir Perl sur votre serveur et d'avoir installé le module Crypt::LE qui vous donnera accès au script le.pl
C'est la version exécutable de ce script que nous utiliserons pour obtenir notre certificat de sécurité sous Windows.
Sous Linux, la démarche restera la même et la syntaxe sera rigoureusement identique. Il suffira juste de convertir le.exe en le.pl, c'est tout.


(Haut de Page)
ATTENTION ! RISQUE DE SÉCURITÉ MAXIMAL !

Dans ce tuto, nous allons manipuler ce qu'on appelle des clés RSA.
Il existe deux types de clés RSA qui sont indissociables. La clé privée et la clé publique. Ces 2 clés sont liées, elles sont inséparables.
Sur votre certificat de sécurité, la clé publique apparaitra et c'est entièrement normal. La clé publique, comme son nom l'indique, est destinée à être rendue publique.
La clé privée est secrète et elle doit le rester ! Elle ne doit être divulguée sous aucun prétexte ! Seul votre site a besoin de la clé privée. Tous les autres sites de la planète ne doivent pas connaitre cette clé ! Même si c'est demandé gentiment, ne donnez jamais votre clé privée !

Une autorité de certification, l'autorité qui vous délivrera votre certificat de sécurité ne doit, elle non plus, pas connaitre votre clé privée ! Dans notre exemple, LetsEncrypt pourra vérifier que nous possédons la clé privée en analysant la signature de notre demande de certificat à l'aide de la clé publique et uniquement de la clé publique.

C'est cette clé privée qui fera qu'on sait que c'est vous et votre certificat sur un site sécurisé. C'est cette clé qui servira à établir une connexion sécurisée sur votre site.
Si quelqu'un connait cette clé privée, il pourra créer un "vrai faux certificat" et/ou intercepter la clé générée pour établir la connexion sécurisée et ainsi lancer une attaque de l'homme du milieu.
J'insiste et j'insiste lourdement ! Votre clé privée doit rester secrète !



D'une façon générale, quand vous travaillez avec des clés RSA, la clé privée est secrète, elle est à vous seul.
La clé publique peut être divulguée sans aucun souci et elle doit quasiment toujours être divulguée.




(Haut de Page)
Commençons

La façon de faire est la même sous Linux que sous Windows. Quand une manipulation spéciale pour un système sera demandée, cela sera précisé.

Sur votre serveur, Rendez vous à la racine de celui ci (le point d'entrée où se trouve index.php ou index.html). La racine de votre site est le dossier où atterrissent chaque visiteur ou membre.
Créez un dossier que vous appellerez .well-known/.
Ensuite, dans ce dossier .well-known/, créez un autre dossier qui s'appellera acme-challenge/.
Voilà, votre site contient les dossiers .well-known/acme-challenge/, il est prêt pour répondre aux requêtes de vérification de Lets Encrypt.


(Haut de Page)
Maintenant, nous allons télécharger l'outil LE de la bibliothèque Crypt::LE qui sera indispensable pour générer vos clés et votre certificat de requête en vue d'obtenir un vrai certificat signé par Lets Encrypt.

Pour Windows, rendez vous ici et téléchargez la version qui correspond à votre machine :
- Windows 32 Bits
- Windows 64 bits

Ce tuto est maintenu à jour, mais si vous voulez être certain de télécharger une version toujours à jour, vous pouvez aller directement sur la page Github du projet.
Les téléchargements sont en bas de page.


(Haut de Page)
Sous Linux avec Perl, utilisez CPAN.
Installez le module Crypt::LE
Code
cpan -i Crypt::LE 
Si il vous manque des modules dont Crypt::LE a besoin, cela sera indiqué et l'installation stoppée. Installez les dépendances indiquées et reprenez l'installation de Crypt::LE
Les dépendances PERL s'installent automatiquement avec Crypt::LE.

En cas de gros problème pour installer les dépendances, n'omettez pas le paquet openssl-devel.
Vous êtes bien conscient que OpenSSL est absolument nécessaire, si ce n'est pas le cas, stoppez tout ici. Ce n'est pas la peine d'aller plus loin, ce sujet semble vous dépasser. Faites attention si vous continuez sans savoir ce que vous faites !

Pour CentOS/Fedora/Redhat
Code
yum install openssl-devel

Ubuntu/Debian :
Code
sudo apt-get install libssl-dev


Si vous avez Perl mais n'avez pas CPAN, installez le :
Pour CentOS/Fedora/Redhat
Code
yum install perl-CPAN -y

Ubuntu/Debian :
Code: bash
apt-get install build-essential


Vous pouvez vous aider avec le site ZeroSSL.com qui pourra même vous aider à obtenir des certificats "auto-signés" pour travailler en local et bien plus encore lorsque vous aurez votre CSR (ne donnez jamais votre clé privée ! Un CSR, oui. Une clé, non !).


Pour Windows, dans chaque fichier .zip, vous trouverez un fichier le32.exe ou le64.exe selon la version choisie.
Renommez votre fichier en le.exe
Ca me permettra de donner les mêmes instructions pour Windows 32bits et 64bits. Rassurez vous, ça ne changera rien.

Sous Linux, vous utiliserez le.pl qui présente exactement la même syntaxe que pour Windows.


(Haut de Page)
Entrons dans le vif du sujet en créant les clés et le certificat de requête (CSR)

Imaginons que nous souhaitons un certificat pour le domaine example.com
Ce domaine possède les sous domaines suivants et nous voulons aussi un certificat pour ces sous domaines :
www.example.com
static.example.com
mail.exemple.com



Créez un dossier qui ne soit pas accessible au public et déplacez-y le.exe (le.pl sera accessible de partout).

Sous Windows, avec Wamp, le dossier créé sera par exemple : C:\Wamp\ssl dans le cas où la racine du site est C:\Wamp\www
Sous Linux, ce dossier pourra être : /var/ssl dans le cas où la racine du site est /var/www

C'est vous qui choisissez comme vous en avez envie. Cependant, dites vous bien que le dossier devra être accessible pour le serveur.
Dans ce dossier seront stockés la clé privée et le certificat de sécurité. Le public ne doit pas pouvoir accéder à ce dossier.
Soyez vigilant ! Pas de config du style example.com/ssl, ce serait la plus grosse boulette que vous ayez faite.


Placez vous dans le dossier créé et ouvrez une invite de commande (la console sous Linux)
Sous Windows, appuyez sur la touche "Windows" et entrez "CMD" suivit de entrée. Sous Linux, ouvrez la console ou le shell, c'est pareil.
Rendez vous dans le dossier créé, pour Windows :
Code
cd \wamp\ssl
Ou, sous Linux :
Code
cd /var/ssl


Sous Windows, nous allons utiliser le.exe et entrer ce qui suit :
Code: perl
le.exe --key account-key.key --email "hostmaster@example.com" --csr example.com.csr --csr-key example.com.key --domains "example.com,www.example.com,static.example.com,mail.example.com" --generate-missing --generate-only

Sous Linux, vous entrerez :
Code: perl
le.pl --key account-key.key --email "hostmaster@example.com" --csr example.com.csr --csr-key example.com.key --domains "example.com,www.example.com,static.example.com,mail.example.com" --generate-missing --generate-only

Bien entendu, vous modifierez le nom de domaine et le mail pour les remplacer par les votres. (Il n'existe aucun risque de SPAM avec le mail)

Suite à ceci, vous allez obtenir plusieurs fichiers :
account-key.key : Il s'agit de votre clé privée vous permettant de vous identifier chez Lets Encrypt. Il s'agit de la clé de votre compte, elle n'a rien à voir avec votre certificat mais elle doit aussi rester secrète. Cette clé peut être utilisée pour révoquer votre certificat.
Le mail fourni ne sera utilisé que pour vous prévenir quand il faut renouveler le certificat.
example.com.csr : C'est ce fichier qui contient votre demande de certificat. Il a été signé avec votre clé privée et il contient la clé publique.
example.com.key : Il s'agit de votre clé privée qui doit rester secrète. C'est cette clé qui servira sur votre serveur pour établir une connexion sécurisée. C'est également cette clé qui fera de vous le propriétaire officiel de votre certificat de sécurité.
Si vous perdez cette clé, votre certificat ne sera plus utilisable et vous êtes bon pour en demander un autre avec une nouvelle clé.


(Haut de Page)
Demandons notre certificat !

Attention ! Chacun des domaines ou sous domaines indiqués dans le CSR, le certificat de requête, doit pointer sur votre serveur et avoir accès au dossier /.well-known/acme-challenge/
Si ce n'est pas le cas, vous n'aurez pas votre certificat.

Tout est en règle ? Allons-y !

Pour Windows, la demande sera sous cette forme :
Code: perl
le.exe --key account-key.key --email "hostmaster@example.com" --csr example.com.csr --crt example.com.crt --generate-missing --unlink --path "C:\wamp\www\.well-known\acme-challenge" --live
Pour Linux, ce sera pareil mais avec le.pl :
Code: perl
le.pl --key account-key.key --email "hostmaster@example.com" --csr example.com.csr --crt example.com.crt --generate-missing --unlink --path "/var/www/.well-known/acme-challenge" --live

Bien sûr, modifiez le chemin après le paramètre --path pour indiquer où se trouve /.well-known/acme-challenge selon votre configuration.
Le.exe ou le.pl créera des fichiers de signature dans le dossier afin de valider vos domaines et sous domaines qui seront lus par Lets Encrypt pour validation puis il détruira ces fichiers immédiatement après.

Si tout se passe bien, vous allez obtenir votre certificat. Dans notre exemple il s'appellera example.com.crt
Il ne reste plus qu'à l'installer sur le serveur.

Si vous souhaitez vous entrainer, retirez le paramètre "--live". Vous obtiendrez un "Fake certificat", un faux certificat. Vous replacerez ce paramètre "--live" quand vous serez prêt.
Ca vous permettra d'étudier le certificat obtenu afin de vérifier que tout est bien là. Ces fakes certificats n'ont aucune valeur, vous pouvez en demander autant que vous le voulez pour vérifier que tout ce passe bien. ;)



(Haut de Page)
Installer le certificat sur le serveur

Vous avez besoin de 3 choses.
- La clé privée.
- Le certificat de vos domaines et sous domaines.
- Le certificat intermédiaire (normalement, ce certificat est fourni avec le certificat des domaines, il est compris dedans) et est compris par Apache 2.4 avec la directive Apache SSLCertificateChainFile.
On va faire plus simple, pour que Apache 2.2 soit utilisable, téléchargez le certificat intermédiaire ou Bundle ici et stockez le dans le même dossier que les autres.

Attention quand même. Si vous utilisez Apache 2.2, pensez à mettre à jour votre version de Apache.
Il n'est jamais recommandé d'utiliser de vieilles versions de Apache/PHP.


Maintenant, rendez vous dans la configuration de Apache.
Vous devriez trouver un fichier httpd-ssl.conf dans le dossier extra/

L'arborescence est comme ceci à peu de choses prêt :
httpd.conf  ---
                    |
                 extra/ ---
                              |
                      httpd-ssl.conf


Vous pouvez vous inspirer de httpd.conf pour avoir une idée des chemins.

Dans ce fichier, nous allons créer un Virtual Host puis nous réglerons les chiffrages autorisés.
En tête de fichier, entrez ce qui suit en modifiant les chemins pour qu'ils pointent vers vos certificats (vous avez 2 certificats, le votre. Mais aussi le Bundle, celui de l'autorité) et votre clé privée.
Code: apache
Listen 443

<VirtualHost *:443>

#   General setup for the virtual host

    ServerName example.com
    ServerAlias www.example.com
    ServerAlias mail.example.com
    ServerAlias static.example.com
    DocumentRoot "C:/wamp/www"
    ServerAdmin noreply@example.com

#   SSL Engine Switch:
#   Enable/Disable SSL for this virtual host.
    SSLEngine on
    SSLCertificateFile "c:/wamp/ssl/example.com.crt"
    SSLCertificateKeyFile "c:/wamp/ssl/example.com.key"
    SSLCertificateChainFile "c:/wamp/ssl/lets-encrypt-x3-cross-signed.pem"

</VirtualHost>
Sous Linux, vous n'avez qu'à simplement modifier les chemins des dossiers (/var/ssl dans notre exemple).

Ensuite, nous allons nous intéresser aux chiffrages autorisés ainsi qu'aux logs.

Code: apache
    CustomLog "C:/wamp/logs/access_ssl.log" \
              "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
ErrorLog "C:/wamp/logs/apache_error.log"
    TransferLog "C:/wamp/logs/access.log"

# modern configuration, tweak to your needs
SSLProtocol             all -SSLv3 -SSLv2 -TLSv1.1
SSLCipherSuite          HIGH:MEDIUM:!RC4:!3DES:!DES:!IDEA:!MD5:!aNULL:!eNULL:!EXP
SSLHonorCipherOrder     on
SSLCompression          off
SSLSessionTickets       on

Le protocole SSL n'est plus assez sûr, il présente des vulnérabilités, il est donc interdit sur notre serveur. Seul le TLS est à la hauteur.
Vous remarquerez que le TLS 1.1 n'est pas pris en charge. Aucun appareil ne l'utilise. C'est soit TLS 1.0, soit TLS 1.2.
TLS 1.1 ne sert à rien du tout. Vu qu'il ne sera pas utilisé, nous l'interdisons donc. Ca ne sert à rien de laisser une porte ouverte et ce n'est pas prudent.

Ensuite, nous autorisons certaines suites de chiffrage parmi les plus solides (HIGH:MEDIUM) et nous refusons les autres moins fiables (!3DES:!DES:!IDEA etc.).

Une fois redémarré votre serveur (le redémarrage du serveur est une obligation pour qu'il charge le certificat de sécurité) sous Windows ou le service HTTPD rechargé sous Linux, rendez vous sur ce site : https://www.ssllabs.com/ssltest/ pour tester votre installation SSL.
En espérant que tout va pour le mieux.

Et voilà, désormais votre site est accessible en HTTPS ! :)


ATTENTION !
Un certificat de sécurité n'a rien de secret et il ne faut pas y "cacher" des sous domaines que vous souhaitez garder pour vous.
Votre certificat va participer à la "transparence des certificats de sécurité" et il sera vérifié par tous les géants du web.
Vous pourrez le retrouver ici : https://crt.sh/

La transparence des certificats est nécessaire afin qu'il n'y ait pas de "triche" comme ça a déjà été le cas avec StartSSL (Startcom) et Woosign qui a été gravement puni en voyant tous ses certificats et ceux de ses clients invalidés.
Ce site en a été victime et notre certificat délivré par Startcom et valable 3 ans n'a plus aujourd'hui aucune valeur. Nous avons donc été obligés de changer dans l'urgence. :iq:



(Haut de Page)
A quoi va ressembler notre certificat ?

Prenons le certificat de ce site pour se simplifier la vie. Je vous le répète, un certificat de sécurité n'a rien de secret, vous pouvez récupérer le certificat de ce site ou d'un autre si ça vous chante.
Par contre, si vous n'avez pas la clé privée du certificat, il pourra servir uniquement de décoration au dessus de la télé si vous trouvez ça joli...
Ouvrez votre certificat.


La première chose que vous remarquerez, c'est le chemin d'accès jusqu'à l'autorité de certification qui permettra à votre navigateur web de valider le certificat ou pas.





Ensuite, en regardant plus loin, vous verrez apparaitre pour quel site le certificat a été délivré.
Ca se passe à la ligne "Objet"





Et ensuite, vous aurez la liste des autre domaines ou sous domaines validés pour lesquels votre certificat fonctionnera.
Il s'agit de la ligne "Autre nom de l'objet".





Faites très attention aux dates de validité du certificat ! Le certificat devra être renouvelé avant sa date de péremption.
Les navigateurs web refuseront d'utiliser un certificat qui n'est plus valide. Ils seront tellement alarmistes que n'importe quel internaute ne prendra pas le risque d'utiliser un certificat périmé et ne viendra plus sur votre site.






(Haut de Page)
Exemple de script Bash pour renouvellement automatique du certificat sous Linux

Renouveler le certificat manuellement tous les 3 mois est une tâche qui devient vite pénible.
Voilà donc pourquoi je vous propose un petit script pour Linux qui se chargera de renouveler le certificat automatiquement. Il vous suffit de créer une tâche cron pour que ce script se lance tous les jours.
Ce script lancera le renouvellement de votre certificat Let's Encrypt si sa date de fin de validité est inférieure à 30 jours.
Pour Windows, vous avez un exemple de script un peu plus bas.

Dans votre dossier ./ssl, créez un sous dossier ssl-renew/.
Dans ce sous dossier, placez votre clé privée de compte Let's Encrypt, votre clée privée SSL, votre certificat de requête CSR et aussi le certificat SSL (je vous expliquerai plus loin pourquoi tout ce bazard).

Voilà donc ce script : (vous modifierez les chemins et adresse mail selon votre configuration)

Code
#!/bin/bash

if ! openssl x509 -checkend 2592000 -in /var/www/ssl/ssl-renew/example.com.crt
then
echo "Renouvellement du certificat SSL." &>TMP_SSL1
/usr/local/bin/le.pl --key "/var/www/ssl/ssl-renew/account-key.key" --csr "/var/www/ssl/ssl-renew/example.com.csr" --crt "/var/www/ssl/ssl-renew/example.com.crt" --generate-missing --unlink --path "/var/www/html/.well-known/acme-challenge" --live --renew 30 &>TMP_SSL2
cp -f /var/www/ssl/ssl-renew/example.com.crt /var/www/ssl/example.com.crt
cp -f /var/www/ssl/ssl-renew/example.com.csr /var/www/ssl/example.com.csr
cp -f /var/www/ssl/ssl-renew/example.com.key /var/www/ssl/example.com.key
chown -R apachc:apache /var/www/ssl/
systemctl reload httpd >TMP_SSL3
cat TMP_SSL1 TMP_SSL2 TMP_SSL3 | mail -s "Renouvellement du certificat SSL LetsEncrypt" webmaster@example.com
rm -f TMP_SSL*

else
echo "Renouvellement du certificat SSL non nécessaire." # | mail -s "Certificat SSL LetsEncrypt valide" webmaster@example.com
fi

La première ligne utilise openssl pour tester la fin de validité du cetificat, en secondes, afin de ne pas lancer le.pl et des requêtes inutiles vers Let's Encrypt, tous les jours.
Un peu de respect ne peut pas faire de mal. Inutile d'interroger les serveurs Let's Encrypt si ce n'est pas nécessaire.

La suite du script se charge de renouveler le certificat si cela est nécessaire et de recharger la nouvelle configuration si le certificat a été renouvelé. Dans la foulée, vous recevrez un mail vous donnant tous les détails du renouvellement afin de savoir si tout c'est bien passé.


Pourquoi renouveler le certificat dans un autre dossier pour le copier ensuite dans son dossier de "travail" ?

C'est la seule méthode que j'ai trouvée pour pouvoir changer de clé. Si vous avez une meilleure idée, je suis preneur !
Si vous décidez de changer de clé pour votre certificat, ce sera très simple. Il vous suffira de créer la nouvelle clé, de générer le nouveau certificat CSR et de copier le tout dans ssl-renew/. Au prochain renouvellement du certificat, c'est cette nouvelle clé qui sera utilisée puis la clé et le nouveau certificat seront copiés dans le dossier SSL de Apache.



(Haut de Page)
Exemple de script Batch pour renouvellement automatique du certificat sous Windows (avec Wamp)

Comme pour Linux, dans votre dossier ./ssl, créez un sous dossier ssl-renew/.
Dans ce sous dossier, placez votre clé privée de compte Let's Encrypt, votre clée privée SSL, votre certificat de requête CSR et aussi le certificat SSL. N'ommetez pas de copiez également l'exécutable le.exe
Sous Windows, vous utilisez l'exécutable le.exe que nous avons toujours utilisé jusqu'à présent.

C'est ce script qui renouvellera votre certificat (créez un fichier *.bat que vous appellerez lors du renouvellement)

Code
@echo off
echo.
c:\wamp\ssl\ssl-renew\le.exe --key "c:\wamp\ssl\ssl-renew\account-key.key" --csr "c:\wamp\ssl\ssl-renew\example.com.csr" --crt "c:\wamp\ssl\ssl-renew\example.com.crt" --generate-missing --unlink --path "c:\wamp\www\.well-known\acme-challenge" --live --renew 30 --issue-code 99
if errorlevel 99 (
copy c:\wamp\ssl\ssl-renew\example.com.crt c:\wamp\ssl\example.com.crt
copy c:\wamp\ssl\ssl-renew\example.com.csr c:\wamp\ssl\example.com.csr
copy c:\wamp\ssl\ssl-renew\example.com.key c:\wamp\ssl\example.com.key
echo.
net stop wampapache64
net start wampapache64
rem php c:\wamp\ssl\script_annonçant_le_renouvellement.php
)

ATTENTION !
Sous Windows, vous n'aurez pas la possibilité de recevoir un Email si le certificat est renouvelé. Soyez vigilants lors du renouvellement !
Vous remarquerez une ligne en commentaire (débutant par "rem") qui exécute un script PHP. Vous êtes libres de retirer ce commentaire, de renommer le script et de le créer pour qu'il vous envoie un mail ou toute autre information lors du renouvellement.

Pour lancez ce script Batch toutes les 24 heures, cette horreur appelée "Planificateur de Tâches" de Windows vous attend...
Cliquez sur Démarrer et Ouvrez le planificateur de tâches en tapant son nom puis cliquez sur Créer une tâche (pas Tâche de base !)
Dans la fenêtre qui s'ouvre, au premier onglet, donnez un nom à votre tâche et une description si le coeur vous en dit.
Cliquez sur Utilisateurs ou groupe... suivi de Avancé puis Rechercher. Là, sélectionnez l'utilisateur Administrateur et validez (Le script doit être exécuté avec les privilèges Administrateur sinon le service Apache ne pourra pas être redémmarré automatiquement).
Ensuite, passez à l'onglet Déclencheurs dans lequel vous allez définir l'heure d'exécution du script en cliquant sur Nouveau et vous cocherez la case Chaque jour et Répéter chaque 1 jour.
Et enfin, dans l'onglet Actions, vous n'avez plus qu'à cliquez sur Nouveau et indiquer l'emplacement de votre script.

Ouf ! C'est fini ! Ah oui, ça n'a rien à voir avec la cron de Nunux, hein ?


Pourquoi renouveler le certificat dans un autre dossier pour le copier ensuite dans son dossier de "travail" ?

C'est la seule méthode que j'ai trouvée pour pouvoir changer de clé. Si vous avez une meilleure idée, je suis preneur !
Si vous décidez de changer de clé pour votre certificat, ce sera très simple. Il vous suffira de créer la nouvelle clé, de générer le nouveau certificat CSR et de copier le tout dans ssl-renew/. Au prochain renouvellement du certificat, c'est cette nouvelle clé qui sera utilisée puis la clé et le nouveau certificat seront copiés dans le dossier SSL de Apache.



alex

  • Administrateur
  • Dictionnaire ambulant
  • ********
  • Hors ligne Hors ligne
  • Sexe: Homme
  • Messages: 15.289
  • Proprio officiel chez oim !

Ah je vous l'avais dit ! C'est coton ! :jq:
Mais si vous êtes motivés, je suis là. Motivé avec un minimum de connaissances quand même, hein ? ;)
IP archivée

alex

  • Administrateur
  • Dictionnaire ambulant
  • ********
  • Hors ligne Hors ligne
  • Sexe: Homme
  • Messages: 15.289
  • Proprio officiel chez oim !

Mise à jour du 22 août 2017
Mise à jour des liens vers la nouvelle version des exécutables - v0.25
IP archivée

maximus23

  • Observateur
  • Pipelette pathologique
  • ******
  • Hors ligne Hors ligne
  • Sexe: Homme
  • Messages: 1.641
  • Grand chevalier du mot de passe
      • ®Smf® Solutions

Alors startcom ils sont toujours excommunié ?
IP archivée
Amitiés et à bientôt...
Have a nice day...

alex

  • Administrateur
  • Dictionnaire ambulant
  • ********
  • Hors ligne Hors ligne
  • Sexe: Homme
  • Messages: 15.289
  • Proprio officiel chez oim !

Oui, je crois, j'ai pas regardé.
La punition devait durer 1 an, mais ils ont décidé de créer une nouvelle autorité de certification qui n'est toujours pas reconnue.

A leur place, j'aurais pris la punition et j'aurais attendu 1 an. :iz:
IP archivée

alex

  • Administrateur
  • Dictionnaire ambulant
  • ********
  • Hors ligne Hors ligne
  • Sexe: Homme
  • Messages: 15.289
  • Proprio officiel chez oim !

Pour revenir sur Startcom et Woosign, ça revient tout doucement. :)
Cette semaine, j'ai testé un certificat délivré par leur nouvelle autorité de certification qui ne l'est pas encore tout à fait.

Le certificat passe chez Microsoft et son Internet Explorer, ça devrait donc être pareil pour Edge.
Il passe aussi chez Apple et son Safari (Merci Poulet pour le test).

C'est pas la panacée, mais c'est un début.
Il reste Mozilla et son Firefox mais aussi le navigateur Opera qui fonctionne avec Webkit, le moteur de Mozilla. Je ne peux pas dire si Firefox et Opera ont une politique différente dans la gestion des certificats.
Il reste aussi Google et son Chrome.

Autant dire que c'est pas encore gagné. Il reste 3 navigateurs majoritaires à convaincre que Startcom et Woosign peuvent être des autorités de certification dignes de confiance.

Pour les nuls, je tiens à vous rassurer. Si un certificat est fabriqué maison, et donc pas accepté d'office par les navigateurs, ou délivré par une autorité de certification, ça ne change absolument rien. Les connexions seront sécurisées de la même façon avec un certificat "maison" qu'avec un certificat "honnête".
La seule différence est que le certificat "honnête" garanti que vous êtes sur le bon site, des vérifications ont été faites avant que le certificat ne soit délivré.
Sinon, ça ne remet pas en cause la sécurisation de votre connexion. Même un certificat périmé peut servir pour sécuriser une connexion !
Ce n'est pas très élégant, puisque tous les navigateurs vont s'affoler en vous disant que c'est certain, "un dangereux pirate essaye de vous avoir", mais bon...

IP archivée

alex

  • Administrateur
  • Dictionnaire ambulant
  • ********
  • Hors ligne Hors ligne
  • Sexe: Homme
  • Messages: 15.289
  • Proprio officiel chez oim !

Mise à jour : le 30 septembre 2017
Ajout de liens pour naviguer dans le tuto sans avoir à tout "dérouler".

IP archivée

alex

  • Administrateur
  • Dictionnaire ambulant
  • ********
  • Hors ligne Hors ligne
  • Sexe: Homme
  • Messages: 15.289
  • Proprio officiel chez oim !

Mise à jour
Exemple de script Bash de renouvellement automatique du certificat de sécurité Let's Encrypt.


Renouveler le certificat manuellement tous les 3 mois est une tâche qui devient vite pénible.
Voilà donc pourquoi je vous propose un petit script pour Linux qui se chargera de renouveler le certificat automatiquement. Il vous suffit de créer une tâche cron pour que ce script se lance tous les jours.
Ce script lancera le renouvellement de votre certificat Let's Encrypt si sa date de fin de validité est inférieure à 30 jours.
Je suis désolé pour les utilisateurs Windows, il vous faudra adapter ce script pour en faire un Batch que vous lancerez depuis le planificateur de tâches. (il existe des domaines où Windows n'est plus à la hauteur du tout. Un serveur Apache SSL fait partie de ces domaines)

Dans votre dossier ./ssl, créez un sous dossier ssl-renew/.
Dans ce sous dossier, placez votre clé privée de compte Let's Encrypt, votre clée privée SSL, votre certificat de requête CSR et aussi le certificat SSL (je vous expliquerai plus loin pourquoi tout ce bazard).

Voilà donc ce script : (vous modifierez les chemins et adresse mail selon votre configuration)

Code
#!/bin/bash

if ! openssl x509 -checkend 2592000 -in /var/www/ssl/ssl-renew/example.com.crt
then
echo "Renouvellement du certificat SSL." &>TMP_SSL1
/usr/local/bin/le.pl --key "/var/www/ssl/ssl-renew/account-key.key" --csr "/var/www/ssl/ssl-renew/example.com.csr" --crt "/var/www/ssl/ssl-renew/example.com.crt" --generate-missing --unlink --path "/var/www/html/.well-known/acme-challenge" --live --renew 30 &>TMP_SSL2
cp -f /var/www/ssl/ssl-renew/example.com.crt /var/www/ssl/example.com.crt
cp -f /var/www/ssl/ssl-renew/example.com.csr /var/www/ssl/example.com.csr
cp -f /var/www/ssl/ssl-renew/example.com.key /var/www/ssl/example.com.key
chown -R apache:apache /var/www/ssl/
systemctl reload httpd >TMP_SSL3
cat TMP_SSL1 TMP_SSL2 TMP_SSL3 | mail -s "Renouvellement du certificat SSL LetsEncrypt" webmaster@example.com
rm -f TMP_SSL*

else
echo "Renouvellement du certificat SSL non nécessaire." # | mail -s "Certificat SSL LetsEncrypt valide" webmaster@example.com
fi

La première ligne utilise openssl pour tester la fin de validité du cetificat, en secondes, afin de ne pas lancer le.pl et des requêtes inutiles vers Let's Encrypt, tous les jours.
Un peu de respect ne peut pas faire de mal. Inutile d'interroger les serveurs Let's Encrypt si ce n'est pas nécessaire.

La suite du script se charge de renouveler le certificat si cela est nécessaire et de recharger la nouvelle configuration si le certificat a été renouvelé. Dans la foulée, vous recevrez un mail vous donnant tous les détails du renouvellement afin de savoir si tout c'est bien passé.


Pourquoi renouveler le certificat dans un autre dossier pour le copier ensuite dans son dossier de "travail" ?

C'est la seule méthode que j'ai trouvée pour pouvoir changer de clé. Si vous avez une meilleure idée, je suis preneur !
Si vous décidez de changer de clé pour votre certificat, ce sera très simple. Il vous suffira de créer la nouvelle clé, de générer le nouveau certificat CSR et de copier le tout dans ssl-renew/. Au prochain renouvellement du certificat, c'est cette nouvelle clé qui sera utilisée puis la clé et le nouveau certificat seront copiés dans le dossier SSL de Apache.
IP archivée

JCFM

  • Observateur
  • Pipelette pathologique
  • ******
  • Hors ligne Hors ligne
  • Sexe: Homme
  • Messages: 1.057
  • Choléra officiel chez oim !

Bon, voilà qu'Alex  s'exprime en hébreu !
Je n'y comprends rien ! :if:
Heureusement que j'avais du Doliprane sous la main !
IP archivée
Jean Claude :gt:

alex

  • Administrateur
  • Dictionnaire ambulant
  • ********
  • Hors ligne Hors ligne
  • Sexe: Homme
  • Messages: 15.289
  • Proprio officiel chez oim !

Ben quoi ?
Il s'agit juste de certificat de sécurité pour pouvoir chiffrer les échanges entres chez oim et les ordis des visiteurs/membres. :iq:

Quand on sait comment ça fonctionne, c'est pas si compliqué que ça en a l'air. ;)
Tu crois quand même pas que je vais mettre le réveil pour renouveler le certificat de sécurité. Ca se fait tout seul. :kl:
IP archivée

alex

  • Administrateur
  • Dictionnaire ambulant
  • ********
  • Hors ligne Hors ligne
  • Sexe: Homme
  • Messages: 15.289
  • Proprio officiel chez oim !

Mise à jour du 2 décembre 2017
Mise à jour des liens vers la nouvelle version des exécutables - v0.29 ;)

IP archivée

alex

  • Administrateur
  • Dictionnaire ambulant
  • ********
  • Hors ligne Hors ligne
  • Sexe: Homme
  • Messages: 15.289
  • Proprio officiel chez oim !

Mise à jour du 3 décembre 2017
Après Linux, je me suis forcé et un exemple de script Batch pour renouvellement automatique du certificat Let's Encrypt sous Windows a été ajouté.
IP archivée
Pages: [1]   En haut
 

+ Réponse Rapide

Page générée en 0.984 secondes avec 22 requêtes.