2015-04-13 1 views
-1

J'ai un problème avec le cryptage SSL d'inclusion dans le code node.js. J'ai configuré la base de données, mais je ne peux pas me connecter à l'application via SSL. Tout le temps je reçois une erreur. Peut-être qu'il y a quelqu'un qui a eu la même chose ou qui sait quoi faire parce que je suis fatigué du quatrième jour. Je donne tout ce dont tu as besoin. enter image description hereNode.js SSL Cassandra Apache

client_encryption_options: 
 
    enabled: true 
 
    keystore: E:/apache-cassandra-2.1.4/conf/.keystore 
 
    keystore_password: cassandra 
 
    # require_client_auth: false 
 
    # Set trustore and truststore_password if require_client_auth is true 
 
    # truststore: conf/.truststore 
 
    # truststore_password: cassandra 
 
    # More advanced defaults below: 
 
    # protocol: TLS 
 
    # algorithm: SunX509 
 
    # store_type: JKS 
 
    # cipher_suites: [TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA]

pour générer de cert https://github.com/PatrickCallaghan/datastax-ssl-example

var cassandra = require('cassandra-driver'); 
 
var fs = require('fs'); 
 
var assert = require('assert') 
 
var sslOptions = { 
 
    key: fs.readFileSync('server-key.pem'), 
 
    cert: fs.readFileSync('server-cert.pem'), 
 
\t ca: [ fs.readFileSync('client-cert.pem') ] 
 
}; 
 
var client = new cassandra.Client({ 
 
\t contactPoints : ['127.0.0.1'], 
 
\t authProvider : new cassandra.auth.PlainTextAuthProvider('cassandra', 'cassandra'), 
 
\t sslOptions : sslOptions 
 
}); 
 

 
client.connect(function(err){ 
 
\t assert.ifError(err); 
 
})
enter image description here

s'il vous plaît aider

[authentication] 
 
username = cassandra 
 
password = cassandra 
 

 
[connection] 
 
hostname = 127.0.0.1 
 
port = 9042 
 
factory = cqlshlib.ssl.ssl_transport_factory 
 

 
[ssl] 
 
certfile = E:/certs/localhost_user1.pem 
 
validate = true ## Optional, true by default.

+0

Il semble que l'erreur déclenchée ne soit pas liée au chiffrement. Si vous regardez le [code source] (https://github.com/datastax/nodejs-driver/blob/v2.0.1/lib/connection.js#L490), cette erreur est renvoyée si aucun rappel n'est défini pour une exécution. Pourriez-vous poster le reste du code que vous utilisez? – jorgebg

+0

Comment les faire? Je ne sais pas comment écrire le code – Mateusz

+0

J'ai tellement de code dans la même application, d'abord je voulais écrire la connexion à la base de données – Mateusz

Répondre

0

nouveaux screenshoots avec certyficates .cer et pem enter image description here

enter image description here

var cassandra = require('cassandra-driver'); 
 
var fs = require('fs'); 
 
var assert = require('assert'); 
 
var sslOptions = { 
 
\t key : fs.readFileSync('client-key.pem'), 
 
\t cert : fs.readFileSync('client-cert.pem'), 
 
\t ca : [fs.readFileSync('localhost.cer')] 
 
}; 
 
var client = new cassandra.Client({ 
 
\t \t contactPoints : ['127.0.0.1'], 
 
\t \t authProvider : new cassandra.auth.PlainTextAuthProvider('cassandra', 'cassandra'), 
 
\t \t sslOptions : sslOptions 
 
\t }); 
 

 
client.connect(function (err) { 
 
\t assert.ifError(err); 
 
}) 
 
client.on('log', function (level, className, message, furtherInfo) { 
 
\t console.log('log event: %s -- %s', level, message); 
 
});
enter image description here