Bogue de renouvellement de certificat TLS avec TLSA #39

Closed
opened 2024-07-30 11:28:26 +02:00 by neox · 4 comments
Owner

Il semble que l'architecture de certifcats TLS du service XMPP soit problématique. En effet, il y a un certificat séparé pour le domaine a-lec.org et un second qui couvre les sous-domaines du service (xmpp.a-lec.org, salons.a-lec.org, etc). Cela pose un soucis lors du renouvellement et avec TLSA car différentes clés sont donc présentes pour notre service.

Le renouvellement de a-lec.org était assuré par www.a-lec.org auparavant, et ça n'a pas fonctionné ce 30 juillet 2024. La machine xmpp n'est pas capable d'obtenir un certificat pour a-lec.org car cela redirige vers le site web. Il faut trouver une autre solution : un wildcard pourrait faire l'affaire ?

Il semble que l'architecture de certifcats TLS du service XMPP soit problématique. En effet, il y a un certificat séparé pour le domaine a-lec.org et un second qui couvre les sous-domaines du service (xmpp.a-lec.org, salons.a-lec.org, etc). Cela pose un soucis lors du renouvellement et avec TLSA car différentes clés sont donc présentes pour notre service. Le renouvellement de a-lec.org était assuré par www.a-lec.org auparavant, et ça n'a pas fonctionné ce 30 juillet 2024. La machine xmpp n'est pas capable d'obtenir un certificat pour a-lec.org car cela redirige vers le site web. Il faut trouver une autre solution : un wildcard pourrait faire l'affaire ?
neox added the
bogue
vie privée/sécurité
en cours
labels 2024-07-30 11:28:41 +02:00
Author
Owner

Mise en place du script /etc/letsencrypt/renewal/certbot-dns-01-auth.sh :

#!/bin/bash

# Variables
DOMAIN="_acme-challenge.$CERTBOT_DOMAIN"
TXT_VALUE=$CERTBOT_VALIDATION
TSIG_KEYFILE="/etc/letsencrypt/renewal/certbot.key"

# Update DNS record
nsupdate -k $TSIG_KEYFILE <<EOF
server dns.libre-en-communs.org
update delete $DOMAIN TXT
update add $DOMAIN 300 TXT "$TXT_VALUE"
send
EOF
Mise en place du script `/etc/letsencrypt/renewal/certbot-dns-01-auth.sh` : ``` #!/bin/bash # Variables DOMAIN="_acme-challenge.$CERTBOT_DOMAIN" TXT_VALUE=$CERTBOT_VALIDATION TSIG_KEYFILE="/etc/letsencrypt/renewal/certbot.key" # Update DNS record nsupdate -k $TSIG_KEYFILE <<EOF server dns.libre-en-communs.org update delete $DOMAIN TXT update add $DOMAIN 300 TXT "$TXT_VALUE" send EOF ```
Author
Owner

Génération d'un certificat :

certbot certonly --manual --preferred-challenges=dns --manual-auth-hook /etc/letsencrypt/renewal/certbot-dns-01-auth.sh -d a-lec.org
Génération d'un certificat : ``` certbot certonly --manual --preferred-challenges=dns --manual-auth-hook /etc/letsencrypt/renewal/certbot-dns-01-auth.sh -d a-lec.org ```
Author
Owner

Nouvelle configuration :

# renew_before_expiry = 30 days
version = 2.1.0
archive_dir = /etc/letsencrypt/archive/xmpp.a-lec.org
cert = /etc/letsencrypt/live/xmpp.a-lec.org/cert.pem
privkey = /etc/letsencrypt/live/xmpp.a-lec.org/privkey.pem
chain = /etc/letsencrypt/live/xmpp.a-lec.org/chain.pem
fullchain = /etc/letsencrypt/live/xmpp.a-lec.org/fullchain.pem

# Options used in the renewal process
[renewalparams]
account = 710e4c88be6742755bd91d91d800e21e
authenticator = manual
server = https://acme-v02.api.letsencrypt.org/directory
key_type = ecdsa
pref_challs = dns-01,
manual_auth_hook = /etc/letsencrypt/renewal/certbot-dns-01-auth.sh
reuse_key = True

La commande :

certbot certonly --manual --preferred-challenges=dns --manual-auth-hook /etc/letsencrypt/renewal/certbot-dns-01-auth.sh -d a-lec.org -d matrix-gateway.a-lec.org -d matrix.a-lec.org -d comments.a-lec.org -d news.a-lec.org -d proxy.a-lec.org -d pubsub.a-lec.org -d salons.a-lec.org -d xmpp.a-lec.org --reuse-key
Nouvelle configuration : ``` # renew_before_expiry = 30 days version = 2.1.0 archive_dir = /etc/letsencrypt/archive/xmpp.a-lec.org cert = /etc/letsencrypt/live/xmpp.a-lec.org/cert.pem privkey = /etc/letsencrypt/live/xmpp.a-lec.org/privkey.pem chain = /etc/letsencrypt/live/xmpp.a-lec.org/chain.pem fullchain = /etc/letsencrypt/live/xmpp.a-lec.org/fullchain.pem # Options used in the renewal process [renewalparams] account = 710e4c88be6742755bd91d91d800e21e authenticator = manual server = https://acme-v02.api.letsencrypt.org/directory key_type = ecdsa pref_challs = dns-01, manual_auth_hook = /etc/letsencrypt/renewal/certbot-dns-01-auth.sh reuse_key = True ``` La commande : ``` certbot certonly --manual --preferred-challenges=dns --manual-auth-hook /etc/letsencrypt/renewal/certbot-dns-01-auth.sh -d a-lec.org -d matrix-gateway.a-lec.org -d matrix.a-lec.org -d comments.a-lec.org -d news.a-lec.org -d proxy.a-lec.org -d pubsub.a-lec.org -d salons.a-lec.org -d xmpp.a-lec.org --reuse-key ```
Author
Owner

Et puis on veut que ça recharge ejabberd :

# renew_before_expiry = 30 days
version = 2.1.0
archive_dir = /etc/letsencrypt/archive/xmpp.a-lec.org
cert = /etc/letsencrypt/live/xmpp.a-lec.org/cert.pem
privkey = /etc/letsencrypt/live/xmpp.a-lec.org/privkey.pem
chain = /etc/letsencrypt/live/xmpp.a-lec.org/chain.pem
fullchain = /etc/letsencrypt/live/xmpp.a-lec.org/fullchain.pem

# Options used in the renewal process
[renewalparams]
account = 710e4c88be6742755bd91d91d800e21e
authenticator = manual
server = https://acme-v02.api.letsencrypt.org/directory
key_type = ecdsa
pref_challs = dns-01,
manual_auth_hook = /etc/letsencrypt/renewal/certbot-dns-01-auth.sh
reuse_key = True
renew_hook = systemctl reload ejabberd.service
Et puis on veut que ça recharge ejabberd : ``` # renew_before_expiry = 30 days version = 2.1.0 archive_dir = /etc/letsencrypt/archive/xmpp.a-lec.org cert = /etc/letsencrypt/live/xmpp.a-lec.org/cert.pem privkey = /etc/letsencrypt/live/xmpp.a-lec.org/privkey.pem chain = /etc/letsencrypt/live/xmpp.a-lec.org/chain.pem fullchain = /etc/letsencrypt/live/xmpp.a-lec.org/fullchain.pem # Options used in the renewal process [renewalparams] account = 710e4c88be6742755bd91d91d800e21e authenticator = manual server = https://acme-v02.api.letsencrypt.org/directory key_type = ecdsa pref_challs = dns-01, manual_auth_hook = /etc/letsencrypt/renewal/certbot-dns-01-auth.sh reuse_key = True renew_hook = systemctl reload ejabberd.service ```
neox added
résolu
and removed
en cours
labels 2024-07-30 15:41:35 +02:00
neox closed this issue 2024-08-20 10:19:50 +02:00
Sign in to join this conversation.
No description provided.