我有一個帶有 MariaDB DB 的遠程服務器,它只接受特定用戶的 SSL 連接,并使用以下內容生成了一些自簽名 SSL 證書# Create CA certificateopenssl genrsa 2048 > ca-key.pemopenssl req -new -x509 -nodes -days 3600 -key ca-key.pem -out ca.pem# Create server certificate, remove passphrase, and sign it# server-cert.pem = public key, server-key.pem = private keyopenssl req -newkey rsa:2048 -days 3600 -nodes -keyout server-key.pem -out server-req.pemopenssl rsa -in server-key.pem -out server-key.pemopenssl x509 -req -in server-req.pem -days 3600 \ -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem我填寫了每個證書的詳細信息如下國家名稱: GB地區名稱: 公司鎮機構名稱:公司名稱通用名稱:DEV CA、DEV Server、DEV Client (分別)并將所有其他字段留空遠程服務器中有以下內容 my.cnf[mariadb]ssl-ca=/path/to/ca.pemssl-cert=/path/to/server-cert.pemssl-key=/path/to/server-key.pem我可以通過在本地機器的命令行中包含以下內容進行連接 my.cnf[client]ssl-ca=/path/to/ca.pemssl-cert=/path/to/client-cert.pemssl-key=/path/to/client-key.pem我可以使用以下命令從本地計算機創建 PDO 連接$pdo = new PDO( 'mysql:host=xxx.xxx.xxx.xxx;dbname=database_1', 'database_user', 'database_password', [ PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false, PDO::MYSQL_ATTR_SSL_KEY => '/path/to/client-key.pem', PDO::MYSQL_ATTR_SSL_CERT => '/path/to/client-cert.pem', PDO::MYSQL_ATTR_SSL_CA => '/path/to/ca.pem', ]);不幸的是,如果我刪除該行PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false,我收到內部服務器錯誤,以下內容顯示在我的 MAMP PRO apache 錯誤日志中… FastCGI: incomplete headers (0 bytes) received from server …我的 PHP 錯誤日志中沒有錯誤我只能假設證書驗證出了問題,我錯過了什么嗎? 和/或將PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERTset 設置為 false 是否安全?
使用 SSL 的 PDO 連接到遠程數據庫;驗證服務器證書時出現 FastCGI 錯誤
慕的地8271018
2021-12-24 15:40:26