diff --git a/application/Espo/Core/Loaders/EntityManager.php b/application/Espo/Core/Loaders/EntityManager.php index a53a9c0f78..2fc30406a0 100644 --- a/application/Espo/Core/Loaders/EntityManager.php +++ b/application/Espo/Core/Loaders/EntityManager.php @@ -45,7 +45,10 @@ class EntityManager extends Base 'metadata' => $this->getContainer()->get('ormMetadata')->getData(), 'repositoryFactoryClassName' => '\\Espo\\Core\\ORM\\RepositoryFactory', 'driver' => $config->get('database.driver'), - 'platform' => $config->get('database.platform') + 'platform' => $config->get('database.platform'), + 'sslCA' => $config->get('database.sslCA'), + 'sslCert' => $config->get('database.sslCert'), + 'sslKey' => $config->get('database.sslKey') ); $entityManager = new \Espo\Core\ORM\EntityManager($params); diff --git a/application/Espo/ORM/EntityManager.php b/application/Espo/ORM/EntityManager.php index 75d784ebf4..0b38429438 100644 --- a/application/Espo/ORM/EntityManager.php +++ b/application/Espo/ORM/EntityManager.php @@ -135,7 +135,18 @@ class EntityManager $platform = strtolower($params['platform']); - $this->pdo = new \PDO($platform . ':host='.$params['host'].';'.$port.'dbname=' . $params['dbname'] . ';charset=' . $params['charset'], $params['user'], $params['password']); + $options = array(); + if (isset($params['sslCA'])) { + $options[\PDO::MYSQL_ATTR_SSL_CA] = $params['sslCA']; + } + if (isset($params['sslCert'])) { + $options[\PDO::MYSQL_ATTR_SSL_CERT] = $params['sslCert']; + } + if (isset($params['sslKey'])) { + $options[\PDO::MYSQL_ATTR_SSL_KEY] = $params['sslKey']; + } + + $this->pdo = new \PDO($platform . ':host='.$params['host'].';'.$port.'dbname=' . $params['dbname'] . ';charset=' . $params['charset'], $params['user'], $params['password'], $options); $this->pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); }