如何從給定的 CA 檔案建立 SSL 金鑰和 SSL 憑證(憑證授權單位)

如何從給定的 CA 檔案建立 SSL 金鑰和 SSL 憑證(憑證授權單位)

我需要建立到 Azure 雲端 MySQL 伺服器的加密資料庫連接,他們為我們提供了一個名為「BaltimoreCyber​​TrustRoot.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

相關內容