Мне нужно создать зашифрованное db-соединение с Azure Cloud MySQL Servers, они дали нам сертификат CA под названием "BaltimoreCyberTrustRoot.crt.pem" для использования при подключении к Azure MySQL Servers.
Мой вопрос в том, что когда я подключаюсь к серверу 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,
),
],
KEY и CERT используются только для взаимной аутентификации, т. е. аутентификации по сертификату клиента. Однако этот тип аутентификации здесь не является обязательным, поэтому KEY и CERT вообще не будут использоваться.
Вместо этого они дали вам ЦС, выпустивший сертификат сервера, то есть CA_CERT.
Предполагая, что вы имеете дело с сертификатом клиента.
Вы можете конвертировать 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