2016-08-03 19 views
0

Kurze Frage:checkServerIdentity MongoDB

, was mit dem checkServerIdentity läuft falsch?

wenn ich die Option ausschalte dann kann ich verbinden! Aber ich würde gerne diese Option nutzen!


lange Frage

laufen mongodb 3.2.6

ich einen db Benutzer sieht gemacht

use db 
db.createUser(
    { 
     user: "user", 
     pwd: "pass", 
     roles: [ 
     { role: "readWrite", db: "db" } 
     ] 
    } 
) 

Meine mongod.conf wie diese

systemLog: 
    destination: file 
    logAppend: true 
    path: /var/log/mongodb/mongod.log 

storage: 
    dbPath: /var/lib/mongo 
    journal: 
    enabled: true 

processManagement: 
    fork: true 
    pidFilePath: /var/run/mongodb/mongod.pid 

net: 
    port: 27017 
    ssl: 
    mode: requireSSL 
    PEMKeyFile: /etc/letsencrypt/live/example.com/mongod-PEMKeyFile.pem 
    CAFile: /etc/letsencrypt/mongod-CAFile.pem 

Ich beginne mongod --auth --config /etc/mongod.conf

Dann ist mein node.js Skript Ich betreibe

require(__dirname+'/../node_modules/mongodb').MongoClient.connect(
    'mongodb://user:[email protected]:27017/db?ssl=true&authMechanism=SCRAM-SHA-1&authSource=db' 
    , {server:{ 
     sslValidate:true 
    , checkServerIdentity:true 
    , sslCA:[require('fs').readFileSync('/etc/letsencrypt/identrust-root-download-x3.pem')] 
    , sslKey:require('fs').readFileSync('/etc/letsencrypt/live/example.com/privkey.pem') 
    , sslCert:require('fs').readFileSync('/etc/letsencrypt/live/example.com/mongod-sslCert.pem') 
     }} 
, function(e,db){ 
    console.log(e,db); 
    }); 

zeigt nur Fehler

{ [MongoError: failed to connect to server [127.0.0.1:27017] on first connect] 
    name: 'MongoError', 
    message: 'failed to connect to server [127.0.0.1:27017] on first connect' } 

Hinweis: Es verbindet in Ordnung, wenn ich ssl in der mongod auszuschalten. conf und das node.js-Skript!

Es gibt keine Info im mongod.log

2016-08-03T19:23:26.995+0200 I CONTROL [main] ***** SERVER RESTARTED ***** 
2016-08-03T19:23:27.012+0200 I CONTROL [initandlisten] MongoDB starting : pid=25307 port=27017 dbpath=/var/lib/mongo 64-bit host=xxxx 
2016-08-03T19:23:27.012+0200 I CONTROL [initandlisten] db version v3.2.6 
2016-08-03T19:23:27.012+0200 I CONTROL [initandlisten] git version: 05552b562c7a0b3143a729aaa0838e558dc49b25 
2016-08-03T19:23:27.012+0200 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013 
2016-08-03T19:23:27.012+0200 I CONTROL [initandlisten] allocator: tcmalloc 
2016-08-03T19:23:27.012+0200 I CONTROL [initandlisten] modules: none 
2016-08-03T19:23:27.012+0200 I CONTROL [initandlisten] build environment: 
2016-08-03T19:23:27.012+0200 I CONTROL [initandlisten]  distmod: rhel70 
2016-08-03T19:23:27.012+0200 I CONTROL [initandlisten]  distarch: x86_64 
2016-08-03T19:23:27.012+0200 I CONTROL [initandlisten]  target_arch: x86_64 
2016-08-03T19:23:27.012+0200 I CONTROL [initandlisten] options: { config: "/etc/mongod.conf", net: { port: 27017, ssl: { CAFile: "/etc/letsencrypt/mongod-CAFile.pem", PEMKeyFile: "/etc/letsencrypt/live/example.com/mongod-PEMKeyFile.pem", mode: "requireSSL" } }, processManagement: { fork: true, pidFilePath: "/var/run/mongodb/mongod.pid" }, security: { authorization: "enabled" }, storage: { dbPath: "/var/lib/mongo", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log" } } 
2016-08-03T19:23:27.047+0200 I -  [initandlisten] Detected data files in /var/lib/mongo created by the 'mmapv1' storage engine, so setting the active storage engine to 'mmapv1'. 
2016-08-03T19:23:27.059+0200 I STORAGE [initandlisten] 
2016-08-03T19:23:27.059+0200 I STORAGE [initandlisten] ** WARNING: Readahead for /var/lib/mongo is set to 4096KB 
2016-08-03T19:23:27.059+0200 I STORAGE [initandlisten] **   We suggest setting it to 256KB (512 sectors) or less 
2016-08-03T19:23:27.059+0200 I STORAGE [initandlisten] **   http://dochub.mongodb.org/core/readahead 
2016-08-03T19:23:27.059+0200 I JOURNAL [initandlisten] journal dir=/var/lib/mongo/journal 
2016-08-03T19:23:27.060+0200 I JOURNAL [initandlisten] recover : no journal files present, no recovery needed 
2016-08-03T19:23:27.364+0200 I JOURNAL [durability] Durability thread started 
2016-08-03T19:23:27.365+0200 I JOURNAL [journal writer] Journal writer thread started 
2016-08-03T19:23:27.366+0200 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended. 
2016-08-03T19:23:27.366+0200 I CONTROL [initandlisten] 
2016-08-03T19:23:27.366+0200 I CONTROL [initandlisten] 
2016-08-03T19:23:27.366+0200 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. 
2016-08-03T19:23:27.366+0200 I CONTROL [initandlisten] **  We suggest setting it to 'never' 
2016-08-03T19:23:27.366+0200 I CONTROL [initandlisten] 
2016-08-03T19:23:27.366+0200 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. 
2016-08-03T19:23:27.366+0200 I CONTROL [initandlisten] **  We suggest setting it to 'never' 
2016-08-03T19:23:27.366+0200 I CONTROL [initandlisten] 
2016-08-03T19:23:27.389+0200 I FTDC  [initandlisten] Initializing full-time diagnostic data capture with directory '/var/lib/mongo/diagnostic.data' 
2016-08-03T19:23:27.389+0200 I NETWORK [initandlisten] waiting for connections on port 27017 ssl 
2016-08-03T19:23:27.390+0200 I NETWORK [HostnameCanonicalizationWorker] Starting hostname canonicalization worker 

Wie ich das Debuggen kann? Dieser Fehler sagt mir nichts!

Antwort

0

aus: https://jira.mongodb.org/browse/NODE-788

Lucas Hrabovsky hat einen Kommentar - 4. August 2016 05.38.18 GMT + 0000

bei der Durchführung der Suche nach checkServerIdentity, dies ist der Rückruf an tls.connect() geben. checkServerIdentity: true für Ihr Beispiel zu übergeben ist nicht erforderlich, da dies der Standardwert für diese Option ist und nur als checkServerIdentity: false oder ein benutzerdefinierter Rückruf angegeben werden sollte.

[email protected] Benz Muircroft hat einen Kommentar - 4. August 2016 18.55.04 GMT + 0000

Feed-back: Das ist wirklich seltsam scheint, dass es auf true setzen es verhindern würde, vom Verbinden!

{ [MongoError: failed to connect to server [127.0.0.1:27017] on first connect] name: 'MongoError', message: 'failed to connect to server [127.0.0.1:27017] on first connect' }

Ps: keinen Hinweis bietet nicht nur checkServerIdentity:true

die aktuelle Ausgangsfehler eine entsprechende Warnung/Fehler haben ignoriert oder bei Leasing werden diese MongoDB Shell-Version verwendet: 3.2.6 I habe einen weiteren Server mit der MongoDB Shell Version: 3.2.8 und setze checkServerIdentity:true auf 3.2.8 hat keinen Einfluss auf die Verbindung in irgendeiner Weise! (Beide Server verwenden node.js mongodb 2.2.4) Es ist sehr seltsam, dass nur ein Server betroffen ist.

Danke!