首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Node.js中使用cassandra-driver连接到Cassandra Apache

在Node.js中使用cassandra-driver连接到Cassandra Apache
EN

Stack Overflow用户
提问于 2015-04-10 04:48:30
回答 2查看 1.3K关注 0票数 4

我尝试连接到我的Cassandra,但我可能配置错误。我在本地主机上运行它。Cassandra已生成证书并添加。在cqlsh中,标志--ssl没有错误。我的片段代码是

代码语言:javascript
复制
var tls = require('tls');
var fs = require('fs');
var options = {
	key : fs.readFileSync('client-key.pem'),
	cert : fs.readFileSync('client-cert.pem'),
	ca : [fs.readFileSync('server-cert.pem')]
};
var client = new cassandra.Client({
		contactPoints : ['127.0.0.1'],
		authProvider : new cassandra.auth.PlainTextAuthProvider('cassandra', 'cassandra'),
		sslOptions : tls.connect(options)
	});

我哪里做错了?请帮帮我!

EN

回答 2

Stack Overflow用户

发布于 2015-04-10 20:54:18

必须在sslOption属性中指定ssl实例才能在驱动程序上启用Object

使用您的代码示例:

代码语言:javascript
复制
var fs = require('fs');
var sslOptions = {
  key : fs.readFileSync('client-key.pem'),
  cert : fs.readFileSync('client-cert.pem'),
  ca : [fs.readFileSync('server-cert.pem')]
};
var client = new cassandra.Client({
  contactPoints : ['127.0.0.1'],
  authProvider : new cassandra.auth.PlainTextAuthProvider('cassandra', 'cassandra'),
  sslOptions : sslOptions
});

如果不使用客户端证书,则可以只使用空对象实例:

代码语言:javascript
复制
var client = new cassandra.Client({
  contactPoints : ['127.0.0.1'],
  authProvider : new cassandra.auth.PlainTextAuthProvider('cassandra', 'cassandra'),
  sslOptions : {}
});

它将使用Node.js tls模块中指定的默认值。

票数 5
EN

Stack Overflow用户

发布于 2015-04-10 05:11:15

您不应该指定tls.connect(options),而应该只为sslOptions提供options。驱动程序使用您提供的sslOptions调用tls.connect

如果您进行了此更改,但仍然出现错误,您能与我分享它们是什么吗?有许多不同的因素会导致建立ssl连接失败。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29548694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档