29.16. Support de SSL
PostgreSQL™ dispose d'un
support natif des connexions SSL
pour crypter les connexions client/serveur et améliorer ainsi la
sécurité. Voir la Section 16.7,
« Connexions tcp/ip sécurisées avec ssl » pour des
détails sur la fonctionnalité SSL
côté serveur.
Si le serveur demande un certificat au client, libpq enverra le certificat stocké dans le
fichier ~/.postgresql/postgresql.crt se
trouvant à l'intérieur du répertoire personnel de l'utilisateur. Un
fichier de la clé privée correspondante, ~/.postgresql/postgresql.key, doit aussi être présent
et ne doit pas être lisible par tout le monde (sur les systèmes
Microsoft Windows, ces fichiers sont nommés %APPDATA%\postgresql\postgresql.crt et %APPDATA%\postgresql\postgresql.key).
Si le fichier ~/.postgresql/root.crt est
présent dans le répertoire personnel de l'utilisateur, libpq utilisera la liste de certificats stockés
pour vérifier le certificat du serveur (sur les systèmes Microsoft
Windows, le fichier est nommé %APPDATA%\postgresql\root.crt). La connexion SSL
échouera si le serveur ne présente pas de certificat ; du coup, pour
utiliser cette fonctionnalité, le serveur doit avoir un fichier
server.crt. Les entrées de la liste de
révocation des certificats (CRL) sont aussi vérifiées si le fichier
~/.postgresql/root.crl existe (%APPDATA%\postgresql\root.crl sur Microsoft Windows).
Si vous utilisez SSL dans votre
application (ainsi que dans libpq),
vous pouvez utiliser PQinitSSL(int) pour
indiquer à libpq que la bibliothèque
SSL a déjà été initialisée par
votre application.