
我需要建立到 Azure 雲端 MySQL 伺服器的加密資料庫連接,他們為我們提供了一個名為「BaltimoreCyberTrustRoot.crt.pem」的 CA 證書,以便在連接 Azure MySQL 伺服器時使用。
我的問題是,當我連接到 MySQL 伺服器時,我需要提供金鑰和憑證文件的路徑,如下所示,如何產生自己的金鑰和憑證文件,或者我是否還需要上述兩個文件?將它們留空意味著連接不安全或不太安全?
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
'options' => array(
PDO::MYSQL_ATTR_SSL_KEY => env('CLIENT_KEY', ''),
PDO::MYSQL_ATTR_SSL_CERT => env('CLIENT_CERT', ''),
PDO::MYSQL_ATTR_SSL_CA => env('CA_CERT', ''),
PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false,
),
],
答案1
KEY和CERT僅用於相互認證,即透過用戶端憑證進行認證。不過,這裡似乎不需要這種驗證,因此根本不會使用 KEY 和 CERT。
他們給你的是頒發伺服器憑證的CA,也就是CA_CERT。
答案2
假設您正在處理客戶證書。
您可以將 pem 轉換為單獨的部分/文件 這可能是個解決方案
我可以使用以下命令將 pem 轉換為 crt:
openssl x509 -outform der -in C:\path\to\your-cert.pem -out C:\path\to\your-cert.crt
對於關鍵:
openssl pkey -in foo.pem -out foo.key