Я настраиваю среду разработки с PHP, создавая соединение с MongoDB через SSL. Сервер использует самозаверяющий сертификат, и я использую расширение PHP MongoDB (не более старое монго-расширение). Сервер CentOS 7, mongod - 3.2.6. Клиент - OS X с PHP 5.6.10 (MAMP). Мой mongod.conf имеет следующее:PHP-соединение с MongoDB с SSL
net:
ssl:
mode: requireSSL
PEMKeyFile: /data/ssl/mongodb.pem
allowConnectionsWithoutCertificates: true
Я проверил мое соединение работает без SSL и проверить я могу соединиться с консоли на сервере. Мой PHP подключение выглядит следующим образом:
$mongo = new MongoDB\Driver\Manager("mongodb://" . $mongo_user . ":" . $mongo_pass . "@" . $mongoHost . "/" . $mongo_db, array(
'ssl' => true,
'sslAllowInvalidCertificates' => true,
'host' => $mongoHost
)
);
При попытке подключения, я получаю следующее:
SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Кто есть опыт работы с этим? У меня сложилось впечатление, что sslAllowInvalidCertificates разрешат соединение, даже если сертификат самоподписан (при условии, что самозаверяющий сертификат является отказом проверки).
Спасибо!
См. Соответствующую запись [Группы Google mongodb-user: PHP Connection over SSL] (https://groups.google.com/forum/#!topic/mongodb-user/zmirzLQWmL0) –