diff --git a/test/csit/plans/dmaap-buscontroller/ssl/setup.sh b/test/csit/plans/dmaap-buscontroller/ssl/setup.sh
new file mode 100755
index 0000000..e40f62d
--- /dev/null
+++ b/test/csit/plans/dmaap-buscontroller/ssl/setup.sh
@@ -0,0 +1,45 @@
+#!/bin/bash
+# 
+# ============LICENSE_START=======================================================
+# org.onap.dmaap
+# ================================================================================
+# Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# 
+#      http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+# 
+#
+
+
+# Place the scripts in run order:
+source ${WORKSPACE}/test/csit/scripts/dmaap-buscontroller/start-mock.sh
+start_mock "aaf" 
+AAF_IP=${IP}
+start_mock "mrc" 3905
+MRC_IP=${IP} 
+start_mock "drps" 8443
+DRPS_IP=${IP}
+
+source ${WORKSPACE}/test/csit/scripts/dmaap-buscontroller/dmaapbc-launch.sh 
+dmaapbc_launch $AAF_IP $MRC_IP $DRPS_IP
+DMAAPBC_IP=${IP}
+
+
+echo "AAF_IP=$AAF_IP MRC_IP=$MRC_IP DRPS_IP=$DRPS_IP DMAAPBC_IP=$DMAAPBC_IP"
+
+# Pass any variables required by Robot test suites in ROBOT_VARIABLES
+ROBOT_VARIABLES="-v AAF_IP:${AAF_IP} -v MRC_IP:${MRC_IP} -v DRPS_IP:${DRPS_IP} -v DMAAPBC_IP:${DMAAPBC_IP}"
+
+set -x
+${WORKSPACE}/test/csit/scripts/dmaap-buscontroller/dmaapbc-init.sh ${DMAAPBC_IP} ${DRPS_IP} ${MRC_IP} https
+set +x
diff --git a/test/csit/plans/dmaap-buscontroller/ssl/teardown.sh b/test/csit/plans/dmaap-buscontroller/ssl/teardown.sh
new file mode 100644
index 0000000..1b041a4
--- /dev/null
+++ b/test/csit/plans/dmaap-buscontroller/ssl/teardown.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+# 
+# ============LICENSE_START=======================================================
+# org.onap.dmaap
+# ================================================================================
+# Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# 
+#      http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+# 
+#
+kill-instance.sh aaf-mock
+kill-instance.sh drps-mock
+kill-instance.sh mrc-mock
+kill-instance.sh dmaapbc
+
diff --git a/test/csit/plans/dmaap-buscontroller/ssl/testplan.txt b/test/csit/plans/dmaap-buscontroller/ssl/testplan.txt
new file mode 100644
index 0000000..e106e7b
--- /dev/null
+++ b/test/csit/plans/dmaap-buscontroller/ssl/testplan.txt
@@ -0,0 +1,4 @@
+# Test suites are relative paths under [integration.git]/test/csit/tests/.
+# Place the suites in run order.
+dmaap-buscontroller/ssl_suite
+
diff --git a/test/csit/plans/dmaap-buscontroller/with_mr/setup.sh b/test/csit/plans/dmaap-buscontroller/with_mr/setup.sh
index 3b604fe..bcd19b5 100755
--- a/test/csit/plans/dmaap-buscontroller/with_mr/setup.sh
+++ b/test/csit/plans/dmaap-buscontroller/with_mr/setup.sh
@@ -31,9 +31,9 @@
 	MRC_IP=${IP}
 
 	source ${WORKSPACE}/test/csit/scripts/dmaap-buscontroller/start-mock.sh
-	#start_mock "aaf" 
-	#AAF_IP=${IP}
-	AAF_IP=0.0.0.0
+	start_mock "aaf" 
+	AAF_IP=${IP}
+	#AAF_IP=0.0.0.0
 	#start_mock "drps" 
 	#DRPS_IP=${IP}
 	DRPS_IP=0.0.0.0
diff --git a/test/csit/plans/dmaap-buscontroller/with_mr/teardown.sh b/test/csit/plans/dmaap-buscontroller/with_mr/teardown.sh
index f35b022..3feebe0 100644
--- a/test/csit/plans/dmaap-buscontroller/with_mr/teardown.sh
+++ b/test/csit/plans/dmaap-buscontroller/with_mr/teardown.sh
@@ -25,5 +25,6 @@
 then
 dmaap_mr_teardown
 kill-instance.sh dmaapbc
+kill-instance.sh aaf-mock
 fi
 
diff --git a/test/csit/scripts/dmaap-buscontroller/dmaapbc-init.sh b/test/csit/scripts/dmaap-buscontroller/dmaapbc-init.sh
index 96ac40f..c7cf03e 100755
--- a/test/csit/scripts/dmaap-buscontroller/dmaapbc-init.sh
+++ b/test/csit/scripts/dmaap-buscontroller/dmaapbc-init.sh
@@ -3,6 +3,21 @@
 # $1 is the IP address of the buscontroller
 # $2 is the IP address of the DRPS
 # $3 is the IP address of the MRC
+# $4 is the protocol (defaults to http)
+
+PROTO=${4:-http}
+if [ "$PROTO" = "http" ]
+then
+	PORT=8080
+	CURLOPT="-v"
+	MRPORT=3904
+	DRPORT=8080
+else
+	PORT=8443
+	CURLOPT="-v -k"
+	MRPORT=3905
+	DRPORT=8443
+fi
 
 # INITIALIZE: dmaap object
 JSON=/tmp/$$.dmaap
@@ -10,7 +25,7 @@
 {
 	"version": "1",
 	"topicNsRoot": "org.onap.dmaap",
-	"drProvUrl": "http://${2}:8080",
+	"drProvUrl": "http://${2}:${DRPORT}",
 	"dmaapName": "onapCSIT",
 	"bridgeAdminTopic": "MM_AGENT_PROV"
 
@@ -18,7 +33,7 @@
 EOF
 
 echo "Initializing /dmaap endpoint"
-curl -v -X POST -d @${JSON} -H "Content-Type: application/json" http://$1:8080/webapi/dmaap 
+curl ${CURLOPT} -X POST -d @${JSON} -H "Content-Type: application/json" ${PROTO}://$1:${PORT}/webapi/dmaap 
 
 
 
@@ -35,7 +50,7 @@
 EOF
 
 echo "Initializing /dcaeLocations endpoint"
-curl -v -X POST -d @${JSON} -H "Content-Type: application/json" http://$1:8080/webapi/dcaeLocations 
+curl ${CURLOPT} -X POST -d @${JSON} -H "Content-Type: application/json" ${PROTO}://$1:${PORT}/webapi/dcaeLocations 
 
 
 # INITIALIZE: MR object in 1 site
@@ -52,10 +67,10 @@
 	"dcaeLocationName": "csit-sanfrancisco",
 	"fqdn": "$DOCKER_HOST",
 	"topicProtocol" : "http",
-	"topicPort": "3904"
+	"topicPort": "${MRPORT}"
 
 }
 EOF
 
 echo "Initializing /mr_clusters endpoint"
-curl -v -X POST -d @${JSON} -H "Content-Type: application/json" http://$1:8080/webapi/mr_clusters
+curl ${CURLOPT} -X POST -d @${JSON} -H "Content-Type: application/json" ${PROTO}://$1:${PORT}/webapi/mr_clusters
diff --git a/test/csit/scripts/dmaap-buscontroller/onapCSIT.env b/test/csit/scripts/dmaap-buscontroller/onapCSIT.env
index 58432e6..db86581 100644
--- a/test/csit/scripts/dmaap-buscontroller/onapCSIT.env
+++ b/test/csit/scripts/dmaap-buscontroller/onapCSIT.env
@@ -8,7 +8,7 @@
 # Only need to set values where defaults aren't appropriate
 #
 cat <<!EOF
-DMAAPBC_INT_HTTPS_PORT=0
+DMAAPBC_INT_HTTPS_PORT=8443
 DMAAPBC_PG_ENABLED=false
 DMAAPBC_INSTANCE_NAME=ONAP-CSIT
 DMAAPBC_AAF_URL=https://${1}:1080/proxy/
diff --git a/test/csit/scripts/dmaap-message-router/dmaap-mr-launch.sh b/test/csit/scripts/dmaap-message-router/dmaap-mr-launch.sh
index c439a97..64f1720 100755
--- a/test/csit/scripts/dmaap-message-router/dmaap-mr-launch.sh
+++ b/test/csit/scripts/dmaap-message-router/dmaap-mr-launch.sh
@@ -31,6 +31,7 @@
 # (kafka and zk containers are not called externally)
 
 function dmaap_mr_launch() {
+		COMPOSE_PREFIX=docker-compose
 		# Clone DMaaP Message Router repo
 		mkdir -p $WORKSPACE/archives/dmaapmr
 		cd $WORKSPACE/archives/dmaapmr
@@ -45,12 +46,13 @@
 		# start DMaaP MR containers with docker compose and configuration from docker-compose.yml
 		docker login -u docker -p docker nexus3.onap.org:10001
 		docker-compose up -d
+		docker ps
 
 		# Wait for initialization of Docker contaienr for DMaaP MR, Kafka and Zookeeper
 		for i in {1..50}; do
-			if [ $(docker inspect --format '{{ .State.Running }}' dockercompose_dmaap_1) ] && \
-				[ $(docker inspect --format '{{ .State.Running }}' dockercompose_zookeeper_1) ] && \
-				[ $(docker inspect --format '{{ .State.Running }}' dockercompose_dmaap_1) ] 
+			if [ $(docker inspect --format '{{ .State.Running }}' ${COMPOSE_PREFIX}_dmaap_1) ] && \
+				[ $(docker inspect --format '{{ .State.Running }}' ${COMPOSE_PREFIX}_zookeeper_1) ] && \
+				[ $(docker inspect --format '{{ .State.Running }}' ${COMPOSE_PREFIX}_dmaap_1) ] 
 			then
 				echo "DMaaP Service Running"	
 				break    		
@@ -61,10 +63,10 @@
 		done
 
 
-		DMAAP_MR_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' dockercompose_dmaap_1)
+		DMAAP_MR_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${COMPOSE_PREFIX}_dmaap_1)
 		IP=${DMAAP_MR_IP}
-		KAFKA_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' dockercompose_kafka_1)
-		ZOOKEEPER_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' dockercompose_zookeeper_1)
+		KAFKA_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${COMPOSE_PREFIX}_kafka_1)
+		ZOOKEEPER_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${COMPOSE_PREFIX}_zookeeper_1)
 
 		echo DMAAP_MR_IP=${DMAAP_MR_IP}
 		echo IP=${IP}
@@ -84,9 +86,9 @@
 
 		# Wait for initialization of Docker containers
 		for i in {1..50}; do
-				if [ $(docker inspect --format '{{ .State.Running }}' dockercompose_dmaap_1) ] && \
-						[ $(docker inspect --format '{{ .State.Running }}' dockercompose_zookeeper_1) ] && \
-						[ $(docker inspect --format '{{ .State.Running }}' dockercompose_dmaap_1) ]
+				if [ $(docker inspect --format '{{ .State.Running }}' ${COMPOSE_PREFIX}_dmaap_1) ] && \
+						[ $(docker inspect --format '{{ .State.Running }}' ${COMPOSE_PREFIX}_zookeeper_1) ] && \
+						[ $(docker inspect --format '{{ .State.Running }}' ${COMPOSE_PREFIX}_dmaap_1) ]
 				then
 						echo "DMaaP Service Running"
 						break
diff --git a/test/csit/scripts/dmaap-message-router/dmaap-mr-teardown.sh b/test/csit/scripts/dmaap-message-router/dmaap-mr-teardown.sh
index f573857..ac6d798 100755
--- a/test/csit/scripts/dmaap-message-router/dmaap-mr-teardown.sh
+++ b/test/csit/scripts/dmaap-message-router/dmaap-mr-teardown.sh
@@ -18,7 +18,7 @@
 #
 
 function dmaap_mr_teardown() {
-kill-instance.sh dockercompose_dmaap_1 
-kill-instance.sh dockercompose_kafka_1 
-kill-instance.sh dockercompose_zookeeper_1
+kill-instance.sh docker-compose_dmaap_1 
+kill-instance.sh docker-compose_kafka_1 
+kill-instance.sh docker-compose_zookeeper_1
 }
diff --git a/test/csit/tests/dmaap-buscontroller/ssl_suite/__init__.robot b/test/csit/tests/dmaap-buscontroller/ssl_suite/__init__.robot
new file mode 100644
index 0000000..41c7a00
--- /dev/null
+++ b/test/csit/tests/dmaap-buscontroller/ssl_suite/__init__.robot
@@ -0,0 +1,3 @@
+*** Settings ***
+Documentation    dmaap-buscontroller - Suite 1
+
diff --git a/test/csit/tests/dmaap-buscontroller/ssl_suite/test1.robot b/test/csit/tests/dmaap-buscontroller/ssl_suite/test1.robot
new file mode 100644
index 0000000..999c6ba
--- /dev/null
+++ b/test/csit/tests/dmaap-buscontroller/ssl_suite/test1.robot
@@ -0,0 +1,77 @@
+*** Settings ***
+Library       OperatingSystem
+Library       RequestsLibrary
+Library       HttpLibrary.HTTP
+Library       Collections
+Library       String
+
+*** Variables ***
+${MESSAGE}    Hello, world!
+${DBC_URI}    /webapi
+
+*** Test Cases ***
+String Equality Test
+    Should Be Equal    ${MESSAGE}    Hello, world!
+
+Dir Test
+    [Documentation]    Check if /tmp exists
+    Log                ${MESSAGE}
+    CheckDir           /tmp
+
+Url Test
+    [Documentation]    Check if www.onap.org can be reached
+    Create Session     openo          http://www.onap.org
+    CheckUrl           openo          /                        200
+
+HTTPS Heartbeat Test
+    [Documentation]        Check ${DBC_URI}/info SSL endpoint
+    Create Session         heartbeat          https://${DMAAPBC_IP}:8443
+    CheckUrl               heartbeat          ${DBC_URI}/info   204
+
+HTTPS Dmaap Init Test
+    [Documentation]        Check ${DBC_URI}/dmaap SSL endpoint
+    Create Session         heartbeat          https://${DMAAPBC_IP}:8443
+    CheckStatus               heartbeat          ${DBC_URI}/dmaap   "VALID"
+
+HTTPS Dmaap dcaeLocations Test
+    [Documentation]        Check ${DBC_URI}/dcaeLocations SSL endpoint
+    Create Session         heartbeat          https://${DMAAPBC_IP}:8443
+    CheckStatus0               heartbeat          ${DBC_URI}/dcaeLocations   "VALID"
+
+HTTPS Dmaap mr_clusters Test
+    [Documentation]        Check ${DBC_URI}/mr_clusters SSL endpoint
+    Create Session         heartbeat          https://${DMAAPBC_IP}:8443
+    CheckStatus0               heartbeat          ${DBC_URI}/mr_clusters   "VALID"
+
+
+*** Keywords ***
+CheckDir
+    [Arguments]                 ${path}
+    Directory Should Exist      ${path}
+
+CheckUrl
+    [Arguments]                  ${session}   ${path}     ${expect}
+    ${resp}=                     Get Request          ${session}               ${path}
+    Should Be Equal As Integers  ${resp.status_code}  ${expect}
+
+CheckStatus
+    [Arguments]                  ${session}   ${path}     ${expect}
+    ${resp}=                     Get Request          ${session}               ${path}
+    log                          ${resp.content}
+    ${val}=                      Get Json value       ${resp.content}     /status
+    log                          ${val}
+    should be equal as strings   ${val}      ${expect}
+
+CheckStatus0
+    [Arguments]                  ${session}   ${path}     ${expect}
+    ${resp}=                     Get Request          ${session}               ${path}
+    log                          ${resp.json()}
+    log                          ${resp.content}
+# silliness to strip off the brackets returned for a List to get a Dict
+    ${t1}=                       Remove String       ${resp.content}       [
+    ${dict}=                     Remove String       ${t1}                 ]
+    log                          ${dict}
+    ${val}=                      Get Json value       ${dict}     /status
+    log                          ${val}
+    should be equal as strings   ${val}      ${expect}
+
