2017-10-19 20 views
2

私はRabbitMQサーバに接続しようとしています.RabbitMQサーバは、SSLを使用せざるを得ず、ユーザとパスワードで保護されています。以前は、C#、PHP、およびPythonアプリケーションからこのサーバーに接続することに成功しました。ノードのamqplibとssl接続を接続する方法は?

これは私のNode.jsコードです:

const amqp = require('amqplib'); 
const fs = require('fs'); 

const config = {...} 

const opts = { 
    ca: [fs.readFileSync(config.certificatePath)] 
}; 

const url = `amqps://${config.username}:${config.password}@${config.hostname}:${config.port}`; 

const open = amqp.connect(url, opts); 

open.then(function(conn) { 
    console.log('connected.'); 
}).then(null, console.warn); 

私が手にエラーがある:ローカル発行者証明書が

1)エラーが何を意味して取得することができませんか?

2)接続するには何が必要ですか?

注:library's ssl guideには、 "(必須)tls.connect()に渡されるオプションオブジェクトを指定する必要があります"と書かれています。 この指令を理解できず、tls.connect()の使用例もありません。私はいくつかのバリエーションを試しましたが、失敗しました。多分、ここに誰かに手がかりを与えます。

+0

を見つけることができます 'config.certificatePath'これは、サーバによって使用されている証明書ファイルのですか? –

+0

実際に私はそれを両方の方法で試しました。 1つは同じ証明書で試し、もう1つは異なる証明書で試します。 –

答えて

0

caに証明書パスが割り当てられており、certkeyがありません。

var opts = { 
    cert: certificateAsBuffer,  // client cert 
    key: privateKeyAsBuffer,  // client key 
    passphrase: 'MySecretPassword', // passphrase for key 
    ca: [caCertAsBuffer]   // array of trusted CA certs 
}; 

あなたはあなたのケースでは、参照here

関連する問題