Попытка подключения Mongodb завершилась неудачно: SSLHandshakeFailed: Проверка сертификата равноправного SSL не выполнена: самозаверяющий сертификат - PullRequest
0 голосов
/ 21 ноября 2018

Я установил базу данных mongoDB с защитой SSL на сервере Ubuntu 16.04.5 LTS и использую ее несколько месяцев.Чтобы настроить SSL на монго, я следовал руководству Раджана Махарджана на medium.com (ссылка) .Вернувшись на свой сервер после непродолжительного периода его использования, я получил следующее сообщение об ошибке:

SSL peer certificate validation failed: certificate has expired

Глядя на журнал Монго, я нашел:

[PeriodicTaskRunner] Server certificate is now invalid. It expired on 2018-11-10T08:10:11.000Z

Поэтому я заново создал и заново подписал все свои сертификаты с помощью файла rootCA.key, выполнив те же действия, что и при создании сертификатов в первый раз.Я перезапустил mongod с:

service mongod restart

И теперь у меня появляется ошибка «самоподписанный сертификат»:

MongoDB shell version v4.0.2
connecting to: mongodb://IP:port/
2018-11-21T13:11:10.584+0000 E NETWORK  [js] SSL peer certificate     
validation failed: self signed certificate
2018-11-21T13:11:10.584+0000 E QUERY    [js] Error: 
couldn't connect to server IP:port, connection attempt failed: 
SSLHandshakeFailed: SSL peer certificate validation failed: self signed certificate :
connect@src/mongo/shell/mongo.js:257:13
@(connect):1:6
exception: connect failed

Моя строка подключения выглядит следующим образом:

mongo --ssl --sslCAFile /PATH/TO/rootCA.pem --sslPEMKeyFile /PATH/TO/mongodb.pem --host IP:port

Я не нашел ресурсов по переподписке сертификатов для mongoDB.Любая помощь будет высоко ценится.

РЕДАКТИРОВАТЬ

/ etc / mongod.conf:

# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# Where and how to store data.
storage:
  dbPath: /var/lib/mongodb
  journal:
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# network interfaces
net:
  port: PORT
  bindIp: IP
  ssl:
    mode: requireSSL
    PEMKeyFile: /etc/ssl/mongodb.pem
    CAFile: /etc/ssl/rootCA.pem

# how the process runs
 processManagement:
  timeZoneInfo: /usr/share/zoneinfo

#security:
security:
   authorization: "enabled"

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options:

#auditLog:

#snmp:

1 Ответ

0 голосов
/ 28 ноября 2018

Мне удалось снова заставить его работать, выполнив следующие действия (которые по какой-то причине раньше не работали):

  • удалить файлы mongodb. * Из /etc/ssl/
  • восстановить сертификаты с помощью команд:
    • openssl genrsa -out mongodb.key 2048
    • openssl req -new -key mongodb.key -out mongodb.csr
    • адрес серверав поле Common Name (eg, YOUR name) []
    • openssl x509 -req -in mongodb.csr -CA rootCA.pem -CAkey /PATH/TO/rootCA.key -CAcreateserial -out mongodb.crt -days 500 -sha256
    • cat mongodb.key mongodb.crt> mongodb.pem
  • chmod 666 mongodb.pem
  • перезапуск службы mongod
  • cat / var/log/mongodb/mongod.log ( для проверки состояния )

и для запуска оболочки mongo

  • mongo --ssl --sslCAFile/PATH/TO/rootCA.pem --sslPEMKeyFile /PATH/TO/mongodb.pem --host IP: PORT

Спасибо @AniketMaithani за попытку помочь мне решить эту проблему.

...