Connectez-vous à PostgreSQL en mode SSL

Shihab Sikder 12 octobre 2023
Connectez-vous à PostgreSQL en mode SSL

Postgres utilise SSL pour vérifier la sécurité de la connexion lorsque nous essayons de connecter une base de données. Il est désactivé par défaut en HTTP, mais en HTTPS, nous avons besoin du mode SSL de la connexion pour effectuer toute opération dans la base de données Postgres.

Il peut y avoir plusieurs paramètres d’attaque si la connexion n’est pas privée. N’importe qui peut facilement utiliser les outils de reniflage sur la requête-réponse de la base de données.

Quels sont les modes SSL dans PostgreSQL

Postgres fournit différents types de modes SSL. Examinons d’abord la chaîne de connexion générale pour Postgres.

const connectionString =
    'postgres://<database_username>:<database_userpassword>@<hostaddress>:<port_no>/<database_name>'

Maintenant, nous pouvons ajouter le paramètre sslmode comme suit.

const connectionString =
    'postgres://<database_username>:<database_userpassword>@<hostaddress>:<port_no>/<database_name>?sslmode=<ssl_mode>'

Voici la liste des modes SSL fournis par Postgres.

sslmode Protection contre les écoutes Protection MTM La description
disable Non Non Il ne se souciera pas de la sécurité. Aucune donnée ne sera cryptée.
allow Peut-être Non Il ne se souciera pas de la sécurité et chiffrera la connexion.
prefer Peut-être Non Il ne forcera pas à utiliser le cryptage ; si le serveur prend en charge la surcharge du chiffrement, il chiffrera.
require Oui Non Chiffrez les données, elles seront confrontées à une surcharge de chiffrement et le réseau garantit le bon serveur auquel l’utilisateur souhaite se connecter.
verify-ca Oui Dépend de la politique de l’autorité de certification Chiffrez les données, les frais généraux de chiffrement et connectez-vous toujours au serveur de confiance.
verify-full Oui Oui Les données seront cryptées, l’utilisateur accepte les frais généraux, le réseau et le serveur sont tous deux fiables et ne se connectent qu’au serveur spécifique qui a été demandé.

Vous pouvez également définir cet indicateur dans la variable d’environnement.

PGSSLMODE=verify-full PGSSLROOTCERT=ca.pem

Ici, ca.pem est la clé. Vous devez le récupérer auprès d’une autorité de certification ; CA signifie autorité de certification.

Pour configurer entièrement le serveur avec le mode Postgres SSL, vous pouvez suivre les étapes de ce blog.

Voici une note de la documentation officielle de Postgres concernant le mode SSL.

Using NULL-SHA or NULL-MD5 ciphers, authentication can be done without any encryption overhead. A man-in-the-middle, on the other hand, might read and pass communications between the client and the server. In addition, as compared to the overhead of authentication, encryption has a low overhead. NULL ciphers are not recommended for these reasons.

Vous pouvez également consulter la documentation officielle ici. Ils ont montré comment auto-signer un certificat en utilisant le mode SSL.

Shihab Sikder avatar Shihab Sikder avatar

I'm Shihab Sikder, a professional Backend Developer with experience in problem-solving and content writing. Building secure, scalable, and reliable backend architecture is my motive. I'm working with two companies as a part-time backend engineer.

LinkedIn Website