【问题标题】:Node.js SSL Cassandra Apache [duplicate]Node.js SSL Cassandra Apache [重复]
【发布时间】:2015-06-18 10:25:12
【问题描述】:

我在代码 node.js 中包含 SSL 加密时遇到问题。我已配置数据库,但无法通过 SSL 连接到应用程序。我总是得到一个错误。也许有人有同样的经历或知道该怎么做,因为我厌倦了第四天。我给你需要的一切。

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]

用于生成证书 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'),
	ca: [ fs.readFileSync('client-cert.pem') ]
};
var client = new cassandra.Client({
	contactPoints : ['127.0.0.1'],
	authProvider : new cassandra.auth.PlainTextAuthProvider('cassandra', 'cassandra'),
	sslOptions : sslOptions
});

client.connect(function(err){
	assert.ifError(err);
})

请帮忙

[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.

【问题讨论】:

  • 看起来抛出的错误与加密无关。如果您查看source code,则会在没有为执行定义回调时引发该错误。你能发布你正在使用的其余代码吗?
  • 我该怎么做?我不知道怎么写代码
  • 我在同一个应用程序里有这么多代码,首先我想写数据库连接
  • jorgebg 请帮帮我
  • 您可以使用 client.on('log', console.log) github.com/datastax/nodejs-driver#logging 在驱动程序中启用跟踪。您可以尝试调试,没有更多信息将很难帮助您。如果您想共享您的代码,请使用 gist.github.com 之类的代码共享网站

标签: node.js ssl cassandra


【解决方案1】:

带有证书 .cer 和 pem 的新屏幕截图

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

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

【讨论】:

    猜你喜欢
    • 2015-06-15
    • 2011-06-07
    • 2017-05-24
    • 1970-01-01
    • 2016-01-19
    • 2020-10-14
    • 2011-06-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多