Cómo crear una clave SSL y un certificado SSL a partir de un archivo CA determinado (autoridad certificadora)

Cómo crear una clave SSL y un certificado SSL a partir de un archivo CA determinado (autoridad certificadora)

Necesito crear una conexión de base de datos cifrada a los servidores MySQL en la nube de Azure. Nos han proporcionado un certificado de CA llamado "BaltimoreCyberTrustRoot.crt.pem" para usar al conectarnos con los servidores MySQL de Azure.

Mi pregunta es cuando me conecto al servidor MySQL, necesito proporcionar una ruta a una clave y a un archivo de certificado, como se muestra a continuación. ¿Cómo genero el mío propio? ¿Necesito también los dos archivos anteriores? ¿Dejarlos en blanco significa que la conexión no es segura o es menos segura?

'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,
            ),
        ],

Respuesta1

La CLAVE y el CERT sólo se utilizan para autenticación mutua, es decir, autenticación mediante certificado de cliente. Sin embargo, este tipo de autenticación no parece ser un requisito aquí, por lo que KEY y CERT no se utilizarán en absoluto.

En cambio, lo que le dieron es la CA que emitió el certificado del servidor, es decir, CA_CERT.

Respuesta2

Suponiendo que se trata de un certificado de cliente.

Puede convertir el pem en partes/archivos separados Esta podría ser una solución

Pude convertir pem a crt usando esto:

openssl x509 -outform der -in C:\path\to\your-cert.pem -out C:\path\to\your-cert.crt

Y para clave:

openssl pkey -in foo.pem -out foo.key

información relacionada