.png)
Ich muss eine verschlüsselte Datenbankverbindung zu den Azure Cloud MySQL-Servern herstellen. Sie haben uns ein CA-Zertifikat namens „BaltimoreCyberTrustRoot.crt.pem“ gegeben, das wir für die Verbindung mit den Azure MySQL-Servern verwenden können.
Meine Frage ist, wenn ich mich mit dem MySQL-Server verbinde, muss ich einen Pfad zu einem Schlüssel und einer Zertifikatsdatei angeben, wie unten. Wie erstelle ich meine eigene oder brauche ich auch die beiden oben genannten Dateien? Bedeutet es, dass die Verbindung nicht oder weniger sicher ist, wenn man sie leer lässt?
'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,
),
],
Antwort1
KEY und CERT werden nur für die gegenseitige Authentifizierung verwendet, also die Authentifizierung per Client-Zertifikat. Diese Art der Authentifizierung scheint hier jedoch keine Voraussetzung zu sein, daher werden KEY und CERT überhaupt nicht verwendet.
Stattdessen erhalten Sie die Zertifizierungsstelle, die das Serverzertifikat ausgestellt hat, also das CA_CERT.
Antwort2
Angenommen, es handelt sich um ein Client-Zertifikat.
Sie können das PEM in die einzelnen Teile/Dateien konvertieren Dies könnte eine Lösung sein
Ich konnte PEM folgendermaßen in CRT konvertieren:
openssl x509 -outform der -in C:\path\to\your-cert.pem -out C:\path\to\your-cert.crt
Und für den Schlüssel:
openssl pkey -in foo.pem -out foo.key