En essayant de builder une application avec maven, j'ai obtenu cette erreur :
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Traduction : maven a un problème de vérification de certificat SSL pour l'accès à un artifactory (dans mon cas).
Remède proposé (et testé par moi-même) : ajouter des options à la ligne de commande de maven afin de lui faire ignorer ces erreurs SSL :
mvn clean install -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true
Note : maven utilisé en version 3.8.4
Je reçois des mails de letsencrypt me disant que mes certificats arrivent à expiration pour mes différents domaines. Ils ne sont pas renouvelés, alors que la commande est bien lancée par le cron deux fois par jours.
Cependant, quand je lance le certbot à la main, les certificats se renouvellent. #TuTeFousDeMaGueule
Et dans les logs de la commande, je peux voir ce message :
Upgrading certbot-auto 1.8.0 to 1.10.1...
Replacing certbot-auto...
Your system is not supported by certbot-auto anymore.
Certbot will no longer receive updates.
Please visit https://certbot.eff.org/ to check for other alternatives.
Saving debug log to /var/log/letsencrypt/letsencrypt.log
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/monDomaine.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert is due for renewal, auto-renewing...
Il semble que Debian 8 ne soit plus supporté, comme on peut le voir dans la liste d'OS sur le site de certbot. En effet, certbot-auto a été déprécié pour tous les systèmes, sauf ceux basés sur Debian et RHEL.
Alors je pose la question : Debian 8 n'est-il pas basé sur Debian ? #OnMAuraitMenti
Je sais que la version 8 commence à dater un peu, mais bon sang ! Décider unilatéralement d'arrêter un service comme ça sans prévenir, c'est comme manger une raclette sans pommes de terre. Ca ne se fait pas.
Le protocol ACMEv1 sera abandonné par Letsencrypt à partir du 01/06/2020. Si vous avez installé certbot (ou un autre client) il y a longtemps (plusieurs mois ou plusieurs années), pensez à le mettre à jour/
Pour Certbot, suivez le lien de ce post. Il faudra simplement désintaller l'ancien client, puis installer le nouveau.
La ligne de commande de renouvellement (généralement lancée dans une tâche CRON) devra être modifiée pour lancer non plus certbot
mais certbot-auto
.
Pour être sûr que votre certificat est bien passé en ACMEv2, ouvrez la configuration de renouvellement du certificat :
cat /etc/letsencrypt/renewal/nomdemondomaine.conf | grep -E "server"
Vous devriez obtenir https://acme-v02.api.letsencrypt.org/directory
Lors de la création d'un job dans Jenkins, il se peut que l'erreur suivante apparaisse au moment d'indiquer le repository à suivre :
Failed to connect to repository : Command "git ls-remote -h https://monsite.com/scm/mon_repo.git HEAD"
Voire même :
Failed to connect to repository : Command "git ls-remote -h https://monsite.com/scm/mon_repo.git HEAD" returned status code 128:
stdout:
stderr: fatal: unable to access 'https://monsite.com/scm/mon_repo.git/': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
Cela arrive quand le serveur contenant les répo utilise un certificat SSL auto-signé. Pour remédier à ce problème, il faut :
/etc/ssl/certs/
du serveur hébergeant Jenkins.Jenkins devrait maintenant accepter le répo sans broncher.
La question mérite d'être posée.
Qu'arriverait-il en cas de défaillance de l'infrastructure de Let's Encrypt ? Certes, le client Certbot est réutilisable car open source. Mais il faudrait quand même un certain temps avant qu'une solution de repli du même genre que Let's Encrypt (gratuit, protocole ACMEv2) ne soit disponible.
Une solution provisoire serait de passer aux certificats payants. Car il ne faut pas oublier que les incitations des navigateurs et des moteurs de recherche envers les sites à passer au SSL (meilleur ranking, cadenas vert/rouge, alertes, etc), deviendront une plaie en cas de panne chez Let's Encrypt.
Le système gère à présent plus de 50% des certificats au niveau mondial, ceux-ci étant valables pendant trois mois. Cela signifie concrètement qu'une défaillance de l'infrastructure de Let's Encrypt rendrait quasiment inaccessible plus de 50% des sites web mondiaux dans un délai de trois mois.
Et je ne parle même pas de l'hyper-centralisation de facto de la génération des certificats, ce qui rend une attaque coordonnée de plus en plus profitable.
Plutôt effrayant non ?
Il n'est alors pas totalement farfelu de prévoir une solution de secours dans son PCA/PRA. Juste au cas où.
Il est désormais possible de demander des certificats wildcards avec Let's Encrypt! C'est à dire *.domaine.fr.
Quand le mec qui gère un repo distant ne crée pas de certificat SSL, ça donne ça:
git push origin master
fatal: unable to access 'https://truc.machin.fr/mon/repo/': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
Pour contourner ce grave problème de sécurité, il faut lancer la commande suivante dans le repo local:
git config http.sslVerify "false"
Il ne reste plus qu'à remettre la tête dans le sable...
Edit : S'il s'agit d'un répo devant être cloné :
GIT_SSL_NO_VERIFY=true git clone https://url
cd directory/
git config http.sslVerify "false"
Un générateur de configuration SSL pour différents serveurs web (Apache, Nginx, ...).
Il prend en compte les versions des softs ainsi que la compatibilité recherchée avec les navigateurs.
Je garde ça sous le coude, en particulier ce document évoquant les bonnes pratiques du déploiement SSL/TLS.
Un ensemble de conférences sur le SSL/TLS, l'email, le BGP, le droit en informatique, les infrastructures réseau...
On y retrouve notamment Benjamin Bayard.
Une liste des goals pour openssl et de leurs options respectives, avec un descriptif pour chacune.
Dans le cadre de la configuration de ELK, il faut faire communiquer Logstash et Filebeat, qui se trouvent chacun sur un serveur différent. Dans cette optique, il est nécessaire que la communication soit chiffrée.
Il faut donc générer:
Les configurations de Filebeat (filebeat.yml) et Logstash (xyz.conf) devront faire alors appel à ces fichiers. Voir la première partie de cette page pour la config des fichiers.
Il faudra que je teste ça.
Pour la lecture du script ça risque de demander pas mal d'aspirine: un seul fichier de 15000 lignes (quinze mille lignes!!!) en bash. Bref.
Pour mémoire.
Il s'agissait pour moi de faire l'inverse en fait, c'est à dire de ne pas forcer la connexion en https.
Pour cela, il faut aller dans le fichier /etc/apache2/sites-available/monsite.conf et commenter les lignes suivantes:
RewriteEngine on
RewriteCond "quelquechose"
RewriteRule "quelquechose d'autre"
Puis ajouter la ligne suivante:
RewriteEngine off