Aller au contenu

Messages recommandés

Posté(e)

Installation reverse proxy Haproxy et Cerbot (letsencrypt) sur debian

 

(Topics En cours de construction)

 

Je vais vous expliquez comment installer un reverse proxy via Haproxy sur linux debian

 

Matériel nécessaires :

  • 1 nom de domaine (dans ce tutoriel j'utiliserai domaine.fr) donc pour par exemple DSM j'utiliserai le sous domaine suivant dsm.domaine.fr hc2.domaine.fr unifi.domaine.fr ces sous domaines doivent être créés chez votre fournisseur de domaine
  • 1 routeur ou box internet
  • 1 machine qui tourne sous debian (dans cette exemple je considère que l'adresse IP sera 192.168.0.100)

 

Je vous recommande fortement surtout pour les personnes qui ne connaissent pas bien linux de ne pas installer autre chose que haproxy sur cette machine afin d'éviter les conflits de ports

 

Installation de linux debian :

 

 

Configuration du routeur

 

il va falloir rediriger les ports 80 et 443 du routeur vers les ports 80 et 443 de notre machine debian haproxy

 

Installation de Haproxy via Putty

apt-get install haproxy

j'ai rencontré une problème lors de cette installation je ne sais pas si cela pareil pour vous

Si probléme erreur 1 executer les commandes suivantes :

mv /var/lib/dpkg/info/haproxy.* /tmp
apt autoremove
apt-get install -f haproxy

Maintenant que l'installation de Haproxy est terminer je vous donne les commandes pour redémarrer stopper ou redémarrer haproxy

(Cela sera utile car a chaque modification du fichier config il faudra redémarrer haproxy)

-- lancement haproxy
service haproxy restart
service haproxy start
service haproxy stop

Nous en avons fin avec l'installation de Haproxy

nous allons maintenant ouvrir le fichier de configuration Haproxy

soit via winscp

/etc/haproxy/haproxy.cfg

soit via Putty

 

si vous voulez un version plus récente de Harproxy (non dispo sur le dépot officiel)

         Debian/Ubuntu HAProxy packages

https://haproxy.debian.net/#distribution=Debian&release=bookworm&version=2.8

 

nano /etc/haproxy/haproxy.cfg

Voici un Exemple de configuration pour avoir un accès un NAS synology, Home center 2 et un contrôleurs Unifi en HTTPS (pour le moment vous aurez des  erreur car nous n'avons pas de certificat)

global
	log /dev/log	local0
	log /dev/log	local1 notice
	chroot /var/lib/haproxy
	stats socket /run/haproxy/admin.sock mode 660 level admin
	stats timeout 30s
	user haproxy
	group haproxy
	daemon
    maxconn 2048
	
	# Default SSL material locations
	ca-base /etc/ssl/certs
	crt-base /etc/ssl/private

	# Default ciphers to use on SSL-enabled listening sockets.
	# For more information, see ciphers(1SSL). This list is from:
	#  https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
	# An alternative list with additional directives can be obtained from
	#  https://mozilla.github.io/server-side-tls/ssl-config-generator/?server=haproxy
	ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
	ssl-default-bind-options no-sslv3
	tune.ssl.default-dh-param 2048
		
defaults
	log	global
	mode	http
	option	httplog
	option forwardfor
    option http-server-close
	option	dontlognull
        timeout connect 5000
        timeout client  50000
        timeout server  50000
	errorfile 400 /etc/haproxy/errors/400.http
	errorfile 403 /etc/haproxy/errors/403.http
	errorfile 408 /etc/haproxy/errors/408.http
	errorfile 500 /etc/haproxy/errors/500.http
	errorfile 502 /etc/haproxy/errors/502.http
	errorfile 503 /etc/haproxy/errors/503.http
	errorfile 504 /etc/haproxy/errors/504.http
#---------------------------------------------------------------------------
# teste de la configuration : haproxy -c -V -f /etc/haproxy/haproxy.cfg
# demmarrer Haproxy : service haproxy (restart, start, stop)
# voir les logs : less /var/log/haproxy.log
#---------------------------------------------------------------------------	

#------------------------------------------------------------------------------
#                                   H T T P
#------------------------------------------------------------------------------

frontend http-in
    option http-keep-alive
    compression algo gzip
    compression type text/html text/plain text/css application/x-javascript
    bind :::80 v4v6
	acl letsencrypt-acl path_beg /.well-known/acme-challenge
	reqadd X-Forwarded-Proto:\ http
    mode http
    option httplog
	
    #********************************************************
    # Define hosts http
    #********************************************************

	#acl unifi hdr(host) unifi.domaine.fr
	
    #********************************************************
	# Use backend
	#********************************************************

    #use_backend backendUNIFI if unifi	
	
    #********************************************************
	use_backend letsencrypt-backend if letsencrypt-acl
	default_backend www-backend
	#	default_backend poubelle

#------------------------------------------------------------------------------
#                                   H T T P S
#------------------------------------------------------------------------------	

frontend https-in
   bind :::443 ssl crt /etc/haproxy/certs/ no-sslv3
   reqadd X-Forwarded-Proto:\ https
   acl letsencrypt-acl path_beg /.well-known/acme-challenge  
   
    #********************************************************
    # Define hosts https
    #********************************************************
   
    acl dsm hdr(host) dsm.domaine.fr
    acl unifi hdr(host) unifi.domaine.fr   
    acl hc2 hdr(host) hc2.domaine.fr
	
    #********************************************************
	# Use backend 
	#********************************************************

    use_backend backendDSM if dsm
    use_backend backendUNIFI if unifi	
    use_backend backendHC2 if hc2

    #********************************************************	
    use_backend letsencrypt-backend if letsencrypt-acl
    default_backend www-backend   
   


#----------------------------------------------------------------------------- 
#  Define backend 
#----------------------------------------------------------------------------- 
backend www-backend
   redirect scheme https if !{ ssl_fc }
   server www-1 127.0.0.1:8888 check
   
backend letsencrypt-backend

   server letsencrypt 127.0.0.1:8888 


backend poubelle
    mode http
    http-request deny	
   
backend backendDSM
    mode http
    option httpchk
    option forwardfor except 127.0.0.1
    http-request add-header X-Forwarded-Proto https if { ssl_fc }
    server DSM_ESXI 192.168.0.101:5000
	
backend backendHC2
    mode http
    option httpchk
    option forwardfor except 127.0.0.1
    http-request add-header X-Forwarded-Proto https if { ssl_fc }
    server HC2 192.168.0.150:80

backend backendUNIFI
    mode http
    option httpchk
    option forwardfor except 127.0.0.1
    http-request add-header X-Forwarded-Proto https if { ssl_fc }
    server unifi 192.168.0.201:8443 check maxconn 32 ssl verify none

Quels explication sur notre fichier config. il peut le décomposer ne plusieurs partie

 

  1. Paramètre Haproxy
  2. La redirection HTTP
    #------------------------------------------------------------------------------
    #                                   H T T P
    #------------------------------------------------------------------------------
    
    frontend http-in
        option http-keep-alive
        compression algo gzip
        compression type text/html text/plain text/css application/x-javascript
        bind :::80 v4v6
    	acl letsencrypt-acl path_beg /.well-known/acme-challenge
    	reqadd X-Forwarded-Proto:\ http
        mode http
        option httplog
    	
        #********************************************************
        # Define hosts http
        #********************************************************
    
    	#acl unifi hdr(host) unifi.domaine.fr
    	
        #********************************************************
    	# Use backend
    	#********************************************************
    
        #use_backend backendUNIFI if unifi	
    	
        #********************************************************
    	use_backend letsencrypt-backend if letsencrypt-acl
    	default_backend www-backend
    	#	default_backend poubelle

     

  3. La redirection HTTPS
    #------------------------------------------------------------------------------
    #                                   H T T P S
    #------------------------------------------------------------------------------	
    
    frontend https-in
       bind :::443 ssl crt /etc/haproxy/certs/ no-sslv3
       reqadd X-Forwarded-Proto:\ https
       acl letsencrypt-acl path_beg /.well-known/acme-challenge  
       
        #********************************************************
        # Define hosts https
        #********************************************************
       
        acl dsm hdr(host) dsm.domaine.fr
        acl unifi hdr(host) unifi.domaine.fr   
        acl hc2 hdr(host) hc2.domaine.fr
    	
        #********************************************************
    	# Use backend 
    	#********************************************************
    
        use_backend backendDSM if dsm
        use_backend backendUNIFI if unifi	
        use_backend backendHC2 if hc2
    
        #********************************************************	
        use_backend letsencrypt-backend if letsencrypt-acl
        default_backend www-backend   
       
    

     

  4. Backend
    #----------------------------------------------------------------------------- 
    #  Define backend 
    #----------------------------------------------------------------------------- 
    backend www-backend
       redirect scheme https if !{ ssl_fc }
       server www-1 127.0.0.1:8888 check
       
    backend letsencrypt-backend
    
       server letsencrypt 127.0.0.1:8888 
    
    
    backend poubelle
        mode http
        http-request deny	
       
    backend backendDSM
        mode http
        option httpchk
        option forwardfor except 127.0.0.1
        http-request add-header X-Forwarded-Proto https if { ssl_fc }
        server DSM_ESXI 192.168.0.101:5000
    	
    backend backendHC2
        mode http
        option httpchk
        option forwardfor except 127.0.0.1
        http-request add-header X-Forwarded-Proto https if { ssl_fc }
        server HC2 192.168.0.150:80
    
    backend backendUNIFI
        mode http
        option httpchk
        option forwardfor except 127.0.0.1
        http-request add-header X-Forwarded-Proto https if { ssl_fc }
        server unifi 192.168.0.201:8443 check maxconn 32 ssl verify none

    Pour le moment je ne détaillerai pas plus ce ficher je ferai cela ultérieurement

 

Installation de cerbot et non pas d'un plugin pour apache2 ou autres

 

Pour éviter les problèmes de port je vous conseil si apache2 est installer de le supprimer

-- suppression apache2
apt remove apache2

-Supprimer des paquets inutile
apt autoremove

installation cerbot

apt-get install -y certbot

Création des certificats letsencrypt ne pas modifier le port si vous utiliser l'exemple que je vous ai donné

certbot certonly --standalone -d dsm.domaine.fr -d unifi.domaine.fr -d hc2.domaine.fr \--non-interactive --agree-tos --email VotreEmail \--http-01-port=8888

nous allons récupérer le certificats afin qu'il soit utilisable sur Haproxy

mkdir /etc/haproxy/certs/

cat /etc/letsencrypt/live/dsm.domaine.fr/fullchain.pem /etc/letsencrypt/live/dsm.domaine.fr/privkey.pem > /etc/haproxy/certs/domaine.fr.pem

Puis nous redémarrons HaProxy

service haproxy restart

 

  • Thanks 1
  • 1 mois après...
Posté(e)

salut,

comme tu sais j'ai déjà HAProxy installé et configuré sur une Debian.

MAIS

je n'ai jamais réussi à le faire fonctionner pour du TCP (pour faire un backup Syno distant).

Alors, si tu as la solution, je suis super intéressé.

 

Pour Certboot, je vais regarder, car le maire à la minime tous les 3 mois... Sauf que

1) comment il sait qu'il doit aller chercher un nouveau certificat .

2) comment fait-il pour mettre à jours les infos chez le fournisseur de domaine ?

Posté(e)

Si ça peut aider... je fais du TCP pour MySQL/MariaDB, juste comme ceci :

 

listen ft_mysql
        bind 192.168.1.1:3306
        mode tcp
        server mariadb 192.168.1.2:3307

 

  • Like 1
  • 2 mois après...
  • 2 ans après...
  • 10 mois après...
Posté(e)

Voici une solution pour ceux qui ont un blocage de l'image sous DS-Cam

 

ds-cam a besoin que le websocket soit actif

 

pour cela il faut modifier le fichier "haproxy.cfg"

 

#********************************************************
# Define hosts https
#********************************************************

	acl DS-cam hdr(host) cam.domain.fr
	acl DS-cam hdr(Upgrade) -i WebSocket
    acl DS-cam hdr_beg(Host) -i ws

#********************************************************
# Use backend 
#********************************************************

    use_backend backendDS-Cam if DS-cam

#--------------------- Backend pour DS-Cam
backend backendDS-Cam
    mode http
    option httpchk
    option forwardfor except 127.0.0.1
    http-request add-header X-Forwarded-Proto https if { ssl_fc }
    server DS-Cam xxx.xxx.xxx.xxx:5000

 

  • Like 2
Posté(e)
Il y a 2 heures, mprinfo a dit :

acl DS-cam hdr(Upgrade) -i WebSocket

acl DS-cam hdr_beg(Host) -i ws

je suis loin d'être un expert HAProxy, mais a-t-on besoin des 2 lignes ?(car -i ws ressemble furieusement à -i WebSocket)

Posté(e)

Je suis pas un spécialiste de ha

C'est la solution qui fonctionne chez moi
Il faudrait faire un test

Envoyé de mon BLA-L29 en utilisant Tapatalk

Posté(e)

je veux bien faire des tests, mais comme je n'ai pas le soucis, je crains qu'ils ne soient pas significatifs/représentatifs

Posté(e)

tiens justement si tu n'as pas le soucis pourrais tu regardais si tu utilises le websocket dans ton haproxy ?

 

car le soucis est apparu chez moi il y a environ 2 ans lors d'une mise a jour de dscam

 

je n'arrive pas a comprendre pourquoi cela fonctionne chez certains et pas d'autre (haproxy non DSM)

Posté(e) (modifié)

je n'en sais rien. En PJ ma configuration HAProxy qui fonctionnait très bien

 

 

Par ailleurs j'ai enfin appliqué ton tuto pour installer Cerbot.

AVANT, j'avais un dir cert dans /etc/haproxy/ avect un certificat wildcard : certificate.pem (et tout allait bien)

 

Maintenant tu parles d'un dir certs où j'ai mis tous mes certificats (sousdomaine1.mondomaine.fr, sousdomaine2.mondomaine.fr, ...)

lorsque je me connecte à https://sousdomaine1.mondomaine.fr,  j'ai une erreur de certificats non valides.

Je copie alors tous mes certificats dans le dir cert, et là je ne sais plus redémarrer haproxy car erreur.

 

De plus, je n'ai pas pu générer tous les certificats en une fois (avec la commande ... -d ... -d ...), mais ok pour 1 à 1.

 

Qu'ai-je mal fait ?

 

Modifié par jojo
anonymisation
Posté(e)
bind :::443 ssl crt /etc/haproxy/certs/ no-sslv3

/etc/haproxy/certs/ c'est l'endroit ou doit ce trouvé les certificats que tu as concatainer avec "cat"

 

les certificats avant la concataination ce trouve dans /etc/letsencrypt/live

 

tu n'as pas configuré le fichier haproxy.cfg comme dans le tuto

 

par exemple je ne vois pas

backend www-backend
   redirect scheme https if !{ ssl_fc }
   #server www-1 192.168.1.100:8888 check


#--------------------- Backend pour le renouvellement du certificat letsencrypt    
backend letsencrypt-backend
    #server letsencrypt 127.0.0.1:8888 
    server letsencrypt 192.168.1.100:8888 

pour maxconn tu as mis 10 je te conseils maxconn 2048

 

voici quelques commandes pour debugger ton fichier config

 

estion du service HAProxy

Revoyons quelques commandes de gestion de base.

	Vérifier la version installée de HAProxy:
		# haproxy -v

	Avant de commencer le service HAProxy, veuillez valider haproxy.cfg
		# haproxy -c -V -f /etc/haproxy/haproxy.cfg

Démarrer le service HAProxy:
# systemctl start haproxy.service

Vérifiez l'état du service HAProxy:
# systemctl status haproxy.service

Redémarrer le service HAProxy:
# systemctl restart haproxy.service

Si vous voulez recharger le service HAProxy pour appliquer conf:
# systemctl reload haproxy.service

Si vous voulez arrêter le service HAProxy :
# systemctl stop haproxy.service

Par défaut, le service HAProxy est désactivé pour démarrer automatiquement lorsque le serveur démarre. Si vous voulez l'activer au démarrage, lancez :
# systemctl enable haproxy.service

Redésactiver le service pour démarrer au démarrage:
# systemctl disable haproxy.service

petite doc au passage : https://docs.haproxy.org/2.4/management.html

Posté(e)

@jojo tu peux me tester ce fichiers haproxy.cfg

 

tu le copie dans /ect/haproxy

 

tu vérifies que le répertoire

/etc/haproxy/certs

existe car je crois que tu as mis "cert"

 

une fois copier tu lances cette commande

haproxy -c -V -f /etc/haproxy/haproxy.cfg

 

si c'est valide

systemctl restart haproxy.service

 

exemple pour lets encrypt il faut mettre ton sous domaine et ton adresse mail

 

certbot certonly --standalone -d synomain.jojo.be  \--non-interactive --agree-tos --email jojo@free.be \--http-01-port=8888 -v

 

cat /etc/letsencrypt/live/synomain.jojo.be/fullchain.pem /etc/letsencrypt/live/synomain.jojo.be/privkey.pem > /etc/haproxy/certs/synomain.jojo.be.pem

 

 

il faut redirigé les 80 et 443 de ton usg vers haproxy

 

 

Posté(e)

Voici donc le résultat.

En fait le soucis était lié à DEUJX problèmes :

1- Erreur dans le fichier haproxy.cfg : réglé par relecture très attentive du premier topic de ton tuto

ET

2- Comportement très étrange de Cerbot : il créait des dossiers xxx-0001 ou xxx-0002. Donc le CAT (sans renommer les dossiers et fichier dans /Archive et /renew) ne fonctionnait pas bien du tout. J'espère avoir bien bidouillé et que le renouvellent semi-auto dans 1,5 mois fonctionnera. Si oui, je ferai un "script" avec les demandes de certificats et les CAT pour tout automatiser.

Posté(e)

Alors c'est normal
Tu crées ta demande pour ton certificat
Exemple
certbot certonly --standalone -d synomain.jojo.be  \--non-interactive --agree-tos --email jojo@free.be \--http-01-port=8888 -v

Pour le renouvellement
certbot renew

Si il reste moins de 30 jours le certificat sera renouveler

Voilà c'est simple


Envoyé de mon BLA-L29 en utilisant Tapatalk

  • Thanks 1
Posté(e)

et donc je pourrais faire un CRON tous les 1 du mois, et le certificat ne sera renouvelé que s'il expire dans les 30 j ?

Aurais-tu un exemple de script .sh que je n'aurais plus qu'à adapter ?

et où serait-il plus propre de le mettre ?

 

et c'est quoi le paramètre -v que tu viens de donner

Il y a 3 heures, mprinfo a dit :

certbot certonly --standalone -d synomain.jojo.be  \--non-interactive --agree-tos --email jojo@free.be \--http-01-port=8888 -v

qui ne se trouve pas dans ton post 1 ? 

Le 04/04/2020 à 10:21, mprinfo a dit :

certbot certonly --standalone -d dsm.domaine.fr -d unifi.domaine.fr -d hc2.domaine.fr \--non-interactive --agree-tos --email VotreEmail \--http-01-port=8888

 

 

Posté(e)

le -v sert a avoir plus d'information lorsque tu créés le certificat

 

voici quelques commande utile

 

- permet de voir les certificats

certbot certificates

 

- - par defaut le certificat sera mise a jour si ca duré et inferieur à 30 jours

certbot renew

ou

certbot renew --force-renewal

 

-- manage:
        Various subcommands and flags are available for managing your certificates:

           certbot  certificates          List certificates managed by Certbot
           certbot delete                Clean up all files related to a certificate
           certbot  renew                 Renew all certificates (or one specified with --cert-name)
           certbot revoke                Revoke a certificate specified with --cert-path or --cert-name
           certbot  update_symlinks       Recreate symlinks in your /etc/letsencrypt/live/ directory

 

Puisque tu es entrain de refaire ton HA on va essayé de mettre tout a jour comme cela tu seras tranquille pour des années

 

pour connaitre ta version debian

cat /etc/*release

Si tu es en debian 9 je te conseil de passé en debian 12 car les dépots debian sont passé en archivé l'année dernier

 

connaite la version de Haproxy

 

haproxy -v

 

si tu es inférieur a la version 2.10 il faudrait mettre a jour

 

pour le script shell et le cron je te donnnerai ce qu'il faut pour l'instant on va ce concentré sur debian et haproxy

 

lorsque tu touches a la config de haprxy il faut toujours recharger le service

systemctl status haproxy.service

 

#     teste de la configuration :
#        haproxy -c -V -f /etc/haproxy/haproxy.cfg
#    Vérifier la version installée de HAProxy:
#        # haproxy -v
#     demmarrer Haproxy :
#        service haproxy (restart, start, stop)
#    Démarrer le service HAProxy:
#         systemctl start haproxy.service
#    Vérifiez l'état du service HAProxy:
#        systemctl status haproxy.service
#    Redémarrer le service HAProxy:
#         systemctl restart haproxy.service
#
#     voir les logs : less /var/log/haproxy.log

 

Posté(e) (modifié)
Le 03/01/2024 à 05:33, mprinfo a dit :

Puisque tu es entrain de refaire ton HA on va essayé de mettre tout a jour comme cela tu seras tranquille pour des années

:74:

Le 03/01/2024 à 05:33, mprinfo a dit :

Si tu es en debian 9 je te conseil de passé en debian 12 car les dépots debian sont passé en archivé l'année dernier

je suis en 10. Y a-t-il une commande d'upgrade automatique, ou faut-il tout réinstaller ?

root@xxx:~# cat /etc/*release
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

 

Le 03/01/2024 à 05:33, mprinfo a dit :

haproxy -v

je suis en

root@xxx :~# haproxy -v
HA-Proxy version 1.8.19-1+deb10u2 2020/04/01
Copyright 2000-2019 Willy Tarreau <willy@haproxy.org>

donc je devrais upgr&der, mais

root@xxx:~# apt-get install haproxy
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
haproxy est déjà la version la plus récente (1.8.19-1+deb10u2).
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.

peut-être car je suis en Debian10 ?

Le 03/01/2024 à 05:33, mprinfo a dit :

lorsque tu touches a la config de haprxy il faut toujours recharger le service

Merci du rappel, mais ça je savais (quand-même ...)

Modifié par jojo
anonymisation
Posté(e)

@jojo a ok on est a Haproxy 2.9

 

perso je n'utilise que des version LSTB qui sont maintenue au moins 5 ans

 

pour ta version de débian tu peux installer le version 2.6

 

voici la procédure

 

apt remove --purge haproxy

 

apt purge haproxy

 

apt clean

 

apt update

 

apt upgrade

 

apt install curl

 

apt install --no-install-recommends software-properties-common -y

curl https://haproxy.debian.net/bernat.debian.org.gpg \
      | gpg --dearmor > /usr/share/keyrings/haproxy.debian.net.gpg
echo deb "[signed-by=/usr/share/keyrings/haproxy.debian.net.gpg]" \
      http://haproxy.debian.net buster-backports-2.6 main \
      > /etc/apt/sources.list.d/haproxy.list
apt-get update
apt-get install haproxy=2.6.\*

systemctl start haproxy.service

 

systemctl enable haproxy.service

 

Voila c'est fini :D

 

 

 

 

 

Posté(e)

normal c'est @jojo qui a merdu :D

 

je te donne le script que j'utilise il est trés simple

 

##################################################################
#    copier le fichier renew_certs.sh vers /usr/local/bin        #
#                                                                #
#		-- le rendre executable                                  #
#		   chmod -x renew_certs.sh                               #
#                                                                #
#		-- execution automatique tout les lundi a 1h30           #
#		   crontab -e                                            #
#		   30 1 * * 1 /usr/local/bin/renew_certs.sh              #
#		                                                         #
#		-- verification                                          #
#		   crontab -l                                            #
#                                                                #
##################################################################

VERT="\\033[1;32m"
NORMAL="\\033[0;39m"
ROUGE="\\033[1;31m"
ROSE="\\033[1;35m"
BLEU="\\033[1;34m"
BLANC="\\033[0;02m"
BLANCLAIR="\\033[1;08m"
JAUNE="\\033[1;33m"
CYAN="\\033[1;36m"

haproxy_pem_path="/etc/haproxy/certs"

#renew des certificats
/usr/bin/certbot renew #--force-renewal
if [ $? -eq 0 ]; then
    echo -e "$CYAN ________________________________________________________________________________________ $NORMAL"
	echo ""
	echo -e "$(date +%c)  $CYAN Certificates renewed ! Transfert certs vers HAPROXY .pem $NORMAL"
	echo -e "$CYAN ________________________________________________________________________________________ $NORMAL"
else
    echo -e "$ROUGE ________________________________________________________________________________________ $NORMAL"
	echo -e "$(date +%c) $ROUGE Erreur lors du renouvellement des certificats avec code d'erreur $?, Fin du script... $NORMAL"
	echo -e "$ROUGE ________________________________________________________________________________________ $NORMAL"
	exit 1
fi

#Then, create domain.pem containing fullchain et privkey for haproxy
    
for domainconf in $(ls /etc/letsencrypt/renewal/); do
	domain=${domainconf%.conf}
    echo -e "$(date +%c)create $VERT ${domain}.pem $NORMAL"
	cat /etc/letsencrypt/live/${domain}/fullchain.pem /etc/letsencrypt/live/${domain}/privkey.pem > ${haproxy_pem_path}/${domain}.pem
done

echo -e "$CYAN ________________________________________________________________________________________ $NORMAL"
echo ""
echo -e "$JAUNE $(date +%c) Redemarrage de Haproxy $NORNAL"
echo ""
systemctl reload haproxy
echo ""

echo -e "$BLEU ============================================================== $NORMAL"
echo -e "$BLEU = $NORMAL STATUS haproxy"
echo -e "$BLEU ============================================================== $NORMAL"
systemctl status haproxy.service

copier le fichier renew_certs.sh vers /usr/local/bin

- lien du fichier :  renew_certs.sh

 

-- le rendre executable                                 
           chmod +x renew_certs.sh

 

-- on test si cela fonctionne

          /usr/local/bin/renew_certs.sh

 

-- execution automatique tout les lundi a 1h30  

         crontab -e

        30 1 * * 1 /usr/local/bin/renew_certs.sh

 

-- verification
         crontab -l

 

voila tout les lundi a 1h30 du matin il y aura une vérifications de certificats, si ils ont moins de 30 jours de vailidité ils seront alors renouvelés et concaténés

 

on peut oublier cette VM  enfin presque

 

de temps en temps on peut faire

    apt update && apt upgrade

 

  • Thanks 1
Posté(e)
Le 03/01/2024 à 16:51, mprinfo a dit :

curl https://haproxy.debian.net/bernat.debian.org.gpg \
      | gpg --dearmor > /usr/share/keyrings/haproxy.debian.net.gpg


 

jusqu'ici tout a bien été (je crois)

Je suppose que ces 2 lignes sont 1 commande.

J'ai donc fait ceci :

curl https://haproxy.debian.net/bernat.debian.org.gpg \| gpg --dearmor > /usr/share/keyrings/haproxy.debian.net.gpg

et voici le retour que j'ai :

root@xxx:~# curl https://haproxy.debian.net/bernat.debian.org.gpg \| gpg --dearmor > /usr/share/keyrings/haproxy.debian.net.gpg
curl: option --dearmor: is unknown
curl: try 'curl --help' or 'curl --manual' for more information

je suppose que ce sera la même chose pour

Le 03/01/2024 à 16:51, mprinfo a dit :

echo deb "[signed-by=/usr/share/keyrings/haproxy.debian.net.gpg]" \
      http://haproxy.debian.net buster-backports-2.6 main \
      > /etc/apt/sources.list.d/haproxy.list

à mettre en une ligne ?

 

En tout cas, je n'ai plus de HAProxy maintenant :20:

×
×
  • Créer...