2017-10-19 8 views
2

나는 SSL을 사용하도록 강요 받고 사용자와 암호로 보호 된 내 RabbitMQ 서버에 연결하려고합니다. 이전에는 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

를 찾을 수 있습니까? –

+0

사실 나는 그것을 두 가지 방법으로 시도했다. 하나는 같은 인증서로 시도하고, 다른 시도는 다른 인증서로 시도합니다. –

답변

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

당신은 참조 귀하의 경우`config.certificatePath`이 서버에서 사용되는 인증서 파일이에서 here