Skip to content

Commit c23a5d4

Browse files
Configure mqtt client with tls key and cert
1 parent de1a37d commit c23a5d4

File tree

6 files changed

+20
-2
lines changed

6 files changed

+20
-2
lines changed

selenium/bin/suite_template

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,7 @@ _test() {
336336
--env NODE_EXTRA_CA_CERTS=/nodejs/ca.pem \
337337
-v ${MOUNT_NODE_EXTRA_CA_CERTS}:/nodejs/ca.pem \
338338
-v ${TEST_DIR}:/code/test \
339+
-v ${SCRIPT}/../../../${RABBITMQ_LOCAL_CERTS}:${RABBITMQ_CERTS} \
339340
-v ${SCREENS}:/screens \
340341
-v ${ENV_FILE}:/code/.env \
341342
mocha-test:${mocha_test_tag} test /code/test${TEST_CASES_PATH}
@@ -417,6 +418,9 @@ do_generate-ca-server-client-kpi() {
417418
cp $ROOT/tls-gen/basic/result/server_${NAME}_certificate.pem $FOLDER
418419
cp $ROOT/tls-gen/basic/result/server_${NAME}_key.pem $FOLDER
419420
cp $ROOT/tls-gen/basic/result/server_${NAME}.p12 $FOLDER
421+
cp $ROOT/tls-gen/basic/result/client_${NAME}_certificate.pem $FOLDER
422+
cp $ROOT/tls-gen/basic/result/client_${NAME}_key.pem $FOLDER
423+
cp $ROOT/tls-gen/basic/result/client_${NAME}.p12 $FOLDER
420424
end "SSL Certificates generated for $NAME under $FOLDER"
421425
}
422426

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
export IMPORT_DIR=/var/rabbitmq/imports
22
export RABBITMQ_CERTS=/etc/rabbitmq/certs
3+
export RABBITMQ_LOCAL_CERTS=selenium/test/authnz-msg-protocols/certs
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
export IMPORT_DIR=selenium/test/authnz-msg-protocols/imports
2-
export RABBITMQ_CERTS=selenium/test/authnz-msg-protocols/certs
2+
export RABBITMQ_LOCAL_CERTS=selenium/test/authnz-msg-protocols/certs
3+
export RABBITMQ_CERTS=$RABBITMQ_LOCAL_CERTS
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
MQTT_PROTOCOL=mqtts
2+
RABBITMQ_MQTT_URL=mqtts://rabbitmq:8883

selenium/test/authnz-msg-protocols/mqtt.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
const fs = require('fs')
12
const assert = require('assert')
23
const { tokenFor, openIdConfiguration } = require('../utils')
34
const { reset, expectUser, expectVhost, expectResource, allow, verifyAll } = require('../mock_http_backend')
@@ -14,13 +15,14 @@ for (const element of profiles.split(" ")) {
1415
describe('Having MQTT protocol enbled and the following auth_backends: ' + backends, function () {
1516
let mqttOptions
1617
let expectations = []
18+
let mqttProtocol = process.env.MQTT_PROTOCOL || 'mqtt'
1719
let rabbit = process.env.RABBITMQ_HOSTNAME || 'localhost'
1820
let mqttUrl = process.env.RABBITMQ_MQTT_URL || "mqtt://" + rabbit + ":1883"
1921
let username = process.env.RABBITMQ_AMQP_USERNAME
2022
let password = process.env.RABBITMQ_AMQP_PASSWORD
2123
let client_id = process.env.RABBITMQ_AMQP_CLIENT_ID || 'selenium-client'
2224

23-
console.log("RABBITMQ_TEST_DIR : " + process.env.RABBITMQ_TEST_DIR)
25+
console.log("RABBITMQ_CERTS : " + process.env.RABBITMQ_CERTS)
2426

2527
before(function () {
2628
if (backends.includes("http") && username.includes("http")) {
@@ -39,13 +41,19 @@ describe('Having MQTT protocol enbled and the following auth_backends: ' + backe
3941
mqttOptions = {
4042
clientId: client_id,
4143
protocolId: 'MQTT',
44+
protocol: mqttProtocol,
4245
protocolVersion: 4,
4346
keepalive: 10000,
4447
clean: false,
4548
reconnectPeriod: '1000',
4649
username: username,
4750
password: password
4851
}
52+
if (mqttProtocol == 'mqtts') {
53+
mqttOptions["ca"] = [fs.readFileSync(process.env.RABBITMQ_CERTS + "/ca_rabbitmq_certificate.pem")]
54+
mqttOptions["cert"] = fs.readFileSync(process.env.RABBITMQ_CERTS + "/client_rabbitmq_certificate.pem")
55+
mqttOptions["key"] = fs.readFileSync(process.env.RABBITMQ_CERTS + "/client_rabbitmq_key.pem")
56+
}
4957
})
5058

5159
it('can open an MQTT connection', function () {

selenium/test/authnz-msg-protocols/rabbitmq.tls.conf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,5 @@ management.ssl.port = 15671
1111
management.ssl.cacertfile = ${RABBITMQ_CERTS}/ca_rabbitmq_certificate.pem
1212
management.ssl.certfile = ${RABBITMQ_CERTS}/server_rabbitmq_certificate.pem
1313
management.ssl.keyfile = ${RABBITMQ_CERTS}/server_rabbitmq_key.pem
14+
15+
mqtt.listeners.ssl.default = 8883

0 commit comments

Comments
 (0)