指定された CA ファイル (証明機関) から SSL キーと SSL 証明書を作成する方法

指定された CA ファイル (証明機関) から SSL キーと SSL 証明書を作成する方法

Azure Cloud MySQL サーバーへの暗号化された DB 接続を作成する必要があります。Azure MySQL サーバーに接続するときに使用する「BaltimoreCyber​​TrustRoot.crt.pem」という CA 証明書が提供されています。

私の質問は、MySQL サーバーに接続するときに、以下のようにキーと証明書ファイルの両方へのパスも提供する必要があるということです。独自のファイルを生成するにはどうすればよいですか、それとも上記の 2 つのファイルも必要ですか? 空白のままにしておくと、接続が安全でない、または安全性が低いことを意味しますか?

'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

関連情報