Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Umgebungsspezifische SSL-Konfiguration in der Laravel .env-Datei

Sie können eine neue Umgebungsvariable definieren, die die SSL-Nutzung aktiviert oder deaktiviert, und dann einen ternären Operator verwenden, um die entsprechende Konfiguration zu laden.

Fügen Sie dies zu Ihrer .env hinzu Datei in Umgebungen, in denen Datenbank-SSL aktiviert sein muss:

MYSQL_SSL=true // not having this variable defined or being false, will disable SSL

In Ihrer config/database.php Datei, ändern Sie die options Schlüsselwert für Ihre Verbindung wie folgt geladen werden:

'options' => (env('MYSQL_SSL')) ? [
    PDO::MYSQL_ATTR_SSL_KEY    => env('MYSQL_SSL_KEY'),  // /path/to/key.pem
    PDO::MYSQL_ATTR_SSL_CERT   => env('MYSQL_SSL_CERT'), // /path/to/cert.pem
    PDO::MYSQL_ATTR_SSL_CA     => env('MYSQL_SSL_CA'),   // /path/to/ca.pem
    PDO::MYSQL_ATTR_SSL_CIPHER => env('MYSQL_SSL_CIPHER')
] : []

Normalerweise bin ich gegen die Verwendung von Logik in den Konfigurationsdateien, aber in diesem Fall könnte eine Ausnahme gemacht werden.