Les environnements PostgreSQL sur le Stack Harbor PaaS supportent un add-on SSL/TLS intégré qui active le chiffrement en transit entre client et base de données. Après installation, les données sont chiffrées avant de quitter le client, les extrémités s’authentifient mutuellement et la base de données vérifie l’intégrité de chaque paquet à l’arrivée — sans changement de code de votre côté.
L’add-on s’installe sur les nœuds PostgreSQL et, dans les topologies en grappe, sur les nœuds répartiteurs Pgpool-II.
Installer l’add-on
- Dans le tableau de bord, ouvrez le palier PostgreSQL.
- Allez à Add-Ons.
- Cliquez Install sur la carte SSL/TLS Encryption.
- Sélectionnez l’environnement cible et les groupes de nœuds. Pour les grappes avec Pgpool-II, sélectionnez le palier PostgreSQL et le palier Pgpool-II.
- Cliquez Install.
La reconfiguration prend environ une minute. PostgreSQL est redémarré une fois avec la nouvelle configuration TLS.
Emplacement des certificats
- Les certificats sont générés par l’utilitaire
/usr/local/sbin/selfcertgen. - Ils sont auto-signés, émis par nom d’hôte de nœud. Au moment de vous authentifier, utilisez les certificats du nœud auquel vous vous connectez.
- Les certificats serveur et client sont stockés sous
/var/lib/stackharbor/keys/SSL-TLS/, avec deux sous-dossiers :server/— certificats serveur pour la terminaison TLS sur PostgreSQLclient/— certificats client téléchargeables pour TLS mutuel (nœuds PostgreSQL seulement — Pgpool-II n’expose pas de certificats client)
Le raccourci keys dans le gestionnaire de fichiers pointe au même endroit.
Changements de configuration PostgreSQL
L’installation de l’add-on entraîne quelques changements dans la configuration PostgreSQL :
- L’algorithme d’authentification passe de
md5àscram-sha-256— défaut recommandé par le projet PostgreSQL et requis pour SSL avec Pgpool-II en grappe. - Si
md5était la valeur par défaut globale avant, elle est remplacée partout danspostgresql.conf. postgresql.confreçoit les chemins TLS :
ssl_cert_file = '/var/lib/stackharbor/keys/SSL-TLS/server/server.crt'
ssl_ca_file = '/var/lib/stackharbor/keys/SSL-TLS/server/root.crt'
ssl_key_file = '/var/lib/stackharbor/keys/SSL-TLS/server/server.key'
ssl = on
- Les mots de passe des utilisateurs existants doivent être re-hashés sous le nouvel algorithme. L’utilisateur
webadminpar défaut est réinitialisé automatiquement avec le même mot de passe qu’avant. Les utilisateurs personnalisés doivent être réinitialisés manuellement avecALTER ROLE. pg_hba.confest mis à jour pour utiliserhostsslau lieu dehost:
hostssl all all 0.0.0.0/0 scram-sha-256
- Pour activer l’authentification par certificat client en plus du mot de passe, changez la méthode d’auth en
certdanspg_hba.conf.
Changements Pgpool-II
Dans les topologies en grappe avec Pgpool-II, l’add-on active SSL dans /etc/pgpool-II/pgpool.conf :
ssl = on
enable_pool_hba = on
ssl_key = '/var/lib/stackharbor/keys/SSL-TLS/server/server.key'
ssl_cert = '/var/lib/stackharbor/keys/SSL-TLS/server/server.crt'
pool_passwd = 'pool_passwd'
hostssl est utilisé dans /etc/pgpool-II/pool_hba.conf :
hostssl all all 0.0.0.0/0 scram-sha-256
Les entrées par défaut webadmin et pgpool sont ajoutées automatiquement à /etc/pgpool-II/pool_passwd. Pour les utilisateurs personnalisés, ajoutez les entrées avec l’utilitaire pg_enc :
pg_enc -m -f /etc/pgpool-II/pgpool.conf -u $USERNAME $PASSWORD
Réémettre et désinstaller
L’add-on ajoute deux actions sous l’onglet Add-Ons du palier concerné :
- Re-issue certificates — régénère les certificats SSL (utile après compromission suspectée ou suppression accidentelle).
- Configuration Tutorial — lien vers la référence in-platform pour établir une connexion SSL à PostgreSQL.
Uninstall dans le menu débordement de l’add-on retire l’add-on, la configuration personnalisée et les certificats générés.
Connexion d’un client en SSL
Le chiffrement côté serveur est actif immédiatement après installation. Connectez-vous via psql (ou tout client libpq) avec les identifiants reçus par courriel à la création :
psql -U <user> <dbname> -h <host> -p <port> -W
Pour passer en TLS mutuel, téléchargez les certificats client depuis /var/lib/stackharbor/keys/SSL-TLS/client/ sur le nœud PostgreSQL et fournissez-les via les paramètres libpq ou les variables d’environnement (PGSSLCERT, PGSSLKEY, PGSSLROOTCERT).