Où pourrais-je transmettre mes certificats clients pour me connecter à une base de données PostgreSQL? Dois-je transmettre ces certificats dans les paramètres dsn
ou options
du constructeur PDO? Je suis incapable de trouver de la documentation en ligne. J'utilise PHP 7.0.22 sur un Ubuntu 16.04.1. J'ai le support SSL activé pour le pilote pgsql. J'ai trouvé ces constantes dans la classe PDO: PDO::MYSQL_ATTR_SSL_CA
, PDO::MYSQL_ATTR_SSL_KEY
et quelques autres, mais celles-ci sont évidemment pour mySQL et non PGSQL.Connexion à PGSQL via SSL via PHP PDO
EDIT
Voici une implémentation sécurisée de travail basée sur la réponse ci-dessous:
$dbh = new PDO('pgsql:localhost=host;port=26257;dbname=bank;sslmode=require;sslcert=[path]/client.maxroach.crt;sslkey=[path]/client.maxroach.key;sslrootcert=[path]/ca.crt;',
'maxroach', null, array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_EMULATE_PREPARES => true,
));