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.