Configurer un certificat racine pour la vérification du serveur

IMPORTANT
Les certificats TLS/SSL sur les environnements de production pour l’API Interactive Postgres de Query Service ont été actualisés le mercredi 24 janvier 2024.
Bien qu’il s’agisse d’une exigence annuelle, le certificat racine de la chaîne a également changé cette fois-ci, car le fournisseur de certificats TLS/SSL d’Adobe a mis à jour sa hiérarchie de certificats. Cela peut avoir un impact sur certains clients Postgres si leur liste d’autorités de certification ne dispose pas du certificat racine. Par exemple, un client de ligne de commande PSQL peut avoir besoin que les certificats racines soient ajoutés à une ~/postgresql/root.crt de fichier explicite, sinon cela peut entraîner une erreur. Par exemple : psql: error: SSL error: certificate verify failed. Voir la documentation officielle de PostgreSQL pour plus d’informations sur ce problème.
Le certificat racine à ajouter peut être téléchargé depuis https://cacerts.digicert.com/DigiCertGlobalRootG2.crt.pem.

Pour garantir une connexion sécurisée, l’utilisation de SSL doit être configurée à la fois sur le client et le serveur avant que la connexion ne soit établie. Si le protocole SSL est uniquement configuré sur le serveur, le client peut envoyer des informations sensibles telles que des mots de passe avant qu’il ne soit établi que le serveur requiert une sécurité élevée.

Par défaut, PostgreSQL n’effectue aucune vérification du certificat du serveur. Pour vérifier l’identité du serveur et garantir une connexion sécurisée avant l’envoi de données sensibles (dans le cadre du mode de verify-full SSL), vous devez placer un certificat racine (autosigné) sur votre ordinateur local (root.crt) et un certificat feuille signé par le certificat racine sur le serveur.

Si le paramètre sslmode est défini sur verify-full, libpq vérifie que le serveur est fiable en vérifiant la chaîne de certificats jusqu’au certificat racine stocké sur le client. Il vérifie ensuite que le nom d’hôte correspond au nom stocké dans le certificat du serveur.

Pour permettre la vérification du certificat du serveur, vous devez placer un ou plusieurs certificats racine (root.crt) dans le fichier PostgreSQL de votre répertoire personnel. Le chemin d’accès au fichier serait similaire à ~/.postgresql/root.crt.