[英]Connecting to PGSQL over SSL via PHP PDO
我可以在哪里傳遞我的客戶端證書以連接到 PostgreSQL 數據庫? 我是否必須在 PDO 構造函數中的dsn
或options
參數中傳遞這些證書? 我無法在線找到任何文檔。
我在 Ubuntu 16.04.1 上使用 PHP 7.0.22。 我為 pgsql 驅動程序啟用了 SSL 支持。 我確實在 PDO 類中找到了這些常量: PDO::MYSQL_ATTR_SSL_CA
、 PDO::MYSQL_ATTR_SSL_KEY
和其他一些,但這些顯然是用於 mySQL 而不是 PGSQL。
這是基於以下答案的有效安全實現:
$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,
));
根據對PDO Postgres 連接字符串手冊的評論,完整的 DSN 字符串直接傳遞給底層庫函數PQconnectdb
。 因此,您應該能夠使用PostgreSQL 文檔中為該字符串指定的所有參數。
該頁面的相關引用:
所有三個參數在鏈接的頁面上都有更多詳細信息。
請注意,雖然由 PostgreSQL 提供,但這些代碼都與 PHP 運行在同一台服務器上,因此所有路徑都將從該服務器加載,並且需要 PHP 主機進程可以讀取。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.