【发布时间】: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 之类的代码共享网站