node.js - 在 Node.js 中使用 cassandra-driver 通过 SSL 连接到 Cassandra Apache

标签 node.js ssl cassandra

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

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)
	});

我做错了什么? 请帮忙!

最佳答案

您必须在 sslOption 属性中指定一个 Object 实例以在驱动程序上启用 ssl。

使用您的代码示例:

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
});

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

var client = new cassandra.Client({
  contactPoints : ['127.0.0.1'],
  authProvider : new cassandra.auth.PlainTextAuthProvider('cassandra', 'cassandra'),
  sslOptions : {}
});

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

关于node.js - 在 Node.js 中使用 cassandra-driver 通过 SSL 连接到 Cassandra Apache,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29548694/

相关文章:

javascript - Node.js path.join 的参数必须是字符串,但参数是路径

ios - iOS 6 上的 UIWebView 和客户端证书

linux - 文件内容无节标题

带 SSL 的 WCF 不使用任何证书并失败

Android 应用程序在签名后无法对 HTTPS 进行 ajax 调用

Cassandra:最后修改一行的日期时间

java - 如何在 Maven 中排除 hector 的 slf4j

node.js - Google NodeJS Gmail API 获取下一个/上一个线程以进行单线程分页

node.js - 将 StreamlineJS 与 NodeJS Express 框架结合使用

javascript - API 网关返回 403 - 禁止访问