Table of Contents
Introduction
Lorsque vous dĂ©ployez Uptime Kuma sur Kubernetes pour surveiller des services HTTPS internes, vous pouvez ĂȘtre confrontĂ© Ă lâerreur suivante :
â
unable to verify the first certificate
Cela se produit lorsque le conteneur ne parvient pas Ă vĂ©rifier la chaĂźne de certification dâun certificat SSL, souvent parce quâil sâagit dâun certificat interne non reconnu par les autoritĂ©s racines publiques.
Dans ce tutoriel, nous allons voir comment :
- Ajouter un certificat CA interne dans Kubernetes via une
ConfigMap
- Le monter dans le conteneur dâUptime Kuma
- Configurer correctement
NODE_EXTRA_CA_CERTS
pour que Node.js le prenne en compte - VĂ©rifier que tout fonctionne â
đ PrĂ©requis
- Un cluster Kubernetes fonctionnel
- Uptime Kuma déployé dans un namespace (ici
monitoring
) - Un certificat
.crt
,.pem
ou.p7b
contenant la chaßne CA - Un éditeur YAML ou Helm, selon ta stack
đ§Ÿ Ătape 1 â Extraire la chaĂźne de certificats depuis un fichier .p7b
(facultatif)
Si ton fichier est au format .p7b
(PKCS#7), tu peux lâextraire avec OpenSSL :
openssl pkcs7 -print_certs -in mon-certificat.p7b -out fullchain.pem
Le fichier fullchain.pem
doit contenir :
- Le certificat intermédiaire
- Le certificat racine
â ïž Ne pas inclure le certificat serveur dans ce fichier.
đ Ătape 2 â CrĂ©er la ConfigMap
contenant le certificat
Crée un fichier custom-ca-configmap.yaml
:
apiVersion: v1
kind: ConfigMap
metadata:
name: custom-ca-configmap
namespace: monitoring
data:
custom-ca.pem: |
-----BEGIN CERTIFICATE-----
MIIDXTCCAkWgAwIBAgIQJ0bpn++M7LhCt20iYNFAlzANBgkqhkiG9w0BAQsFADBB
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDXTCCAkWgAwIBAgIQJ0bpn++M7LhCt20iYNFAlzANBgkqhkiG9w0BAQsFADBB
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDXTCCAkWgAwIBAgIQJ0bpn++M7LhCt20iYNFAlzANBgkqhkiG9w0BAQsFADBB
...
-----END CERTIFICATE-----
đĄ Assure-toi que le fichier est bien indentĂ©, sans caractĂšres spĂ©ciaux ou lignes corrompues.
Applique la ConfigMap :
kubectl apply -f custom-ca-configmap.yaml
đ§± Ătape 3 â Monter le certificat dans le conteneur
Modifie le Deployment
dâUptime Kuma pour inclure le volume et la variable dâenvironnement NODE_EXTRA_CA_CERTS
.
Extrait YAML :
env:
- name: NODE_EXTRA_CA_CERTS
value: /etc/ssl/certs/custom-ca.pem
volumeMounts:
- name: custom-ca
mountPath: /etc/ssl/certs/custom-ca.pem
subPath: custom-ca.pem
readOnly: true
volumes:
- name: custom-ca
configMap:
name: custom-ca-configmap
đ Ătape 4 â RedĂ©marrer le dĂ©ploiement
Kubernetes ne recharge pas automatiquement les ConfigMap avec subPath
. Il faut redémarrer le pod :
kubectl rollout restart deployment uptime-kuma -n monitoring
đ§Ș Ătape 5 â VĂ©rification
- Connecte-toi Ă lâinterface Uptime Kuma
- Ajoute ou édite une URL HTTPS interne de ton infrastructure, par exemple :
https://service-interne.example.local/
- VĂ©rifie que lâerreur « unable to verify the first certificate » a disparu â
đ ïž DĂ©pannage
đ Fichier non trouvĂ© ?
Vérifie dans le pod :
kubectl exec -n monitoring <pod> -- ls -l /etc/ssl/certs/custom-ca.pem
đ Certificat mal formatĂ© ?
Utilise openssl x509
pour valider :
openssl x509 -in fullchain.pem -noout -text
đ RĂ©fĂ©rencement SEO : mots-clĂ©s utilisĂ©s
- uptime kuma certificat interne
- NODE_EXTRA_CA_CERTS Kubernetes
- ajout CA Kubernetes
- ConfigMap certificat TLS interne
- unable to verify the first certificate Node.js
đŠ Conclusion
Ajouter un certificat CA personnalisĂ© dans Uptime Kuma sur Kubernetes est simple une fois quâon connaĂźt la bonne mĂ©thode : injecter la chaĂźne via une ConfigMap
, la monter proprement dans le conteneur, et informer Node.js avec NODE_EXTRA_CA_CERTS
.
Cela permet de surveiller des services HTTPS internes sans erreurs SSL, mĂȘme avec des certificats auto-signĂ©s ou dĂ©livrĂ©s par une autoritĂ© privĂ©e.