PostgreSQLは、セキュリティを高めるためにクライアントサーバ間の通信を暗号化するSSL接続の使用を元来サポートしています。 サーバ側のSSL機能についての詳細は項16.7を参照してください。
サーバがクライアント証明を要求する場合、libpqはユーザのホームディレクトリにある~/.postgresql/postgresql.crtファイルに格納された証明書を送信します。 また、一致する~/.postgresql/postgresql.key秘密キーファイルも存在しなければならず、更に誰にでも読み取りできるような権限を付与してはなりません。 (Microsoft Windowsでは、このファイルの名前はそれぞれ%APPDATA%\postgresql\postgresql.crtと%APPDATA%\postgresql\postgresql.keyです。)
< ユーザのホームディレクトリに~/.postgresql/root.crtファイルが存在する場合、libpqはそこに保存してある証明書リストを使用して、サーバの証明書を立証します。 (Microsoft Windowsでは、このファイルの名前は%APPDATA%\postgresql\root.crtです。) SSL接続は、サーバに証明書が存在しない場合は失敗します。 従って、この機能を使用するためにはサーバはroot.crtファイルを持たなければなりません。 ~/.postgresql/root.crl(Microsoft Windowsの場合は%APPDATA%\postgresql\root.crl)ファイルが存在する場合、証明書失効リスト(CRL)項目も検査されます。
もしアプリケーションでSSL(更にlibpq)を使用していたら、SSLライブラリをアプリケーションで初期化したことを libpq に知らせるのにPQinitSSL(int)
を使用できるでしょう。