diff --git a/nova/_ssl/rabbitmq.sls b/nova/_ssl/rabbitmq.sls
new file mode 100644
index 0000000..8e236e6
--- /dev/null
+++ b/nova/_ssl/rabbitmq.sls
@@ -0,0 +1,87 @@
+{% from "nova/map.jinja" import controller, compute with context %}
+
+{%- if controller.enabled == True %}
+  {%- set nova_msg = controller.message_queue %}
+  {%- set nova_cacert = controller.cacert_file %}
+  {%- set role = 'controller' %}
+{%- else %}
+  {%- set nova_msg = compute.message_queue %}
+  {%- set nova_cacert = compute.cacert_file %}
+  {%- set role = 'compute' %}
+{%- endif %}
+
+nova_{{ role }}_ssl_rabbitmq:
+  test.show_notification:
+    - text: "Running nova._ssl.rabbitmq"
+
+{%- if nova_msg.get('x509',{}).get('enabled',False) %}
+
+  {%- set ca_file=nova_msg.x509.ca_file %}
+  {%- set key_file=nova_msg.x509.key_file %}
+  {%- set cert_file=nova_msg.x509.cert_file %}
+
+rabbitmq_nova_{{ role }}_ssl_x509_ca:
+  {%- if nova_msg.x509.cacert is defined %}
+  file.managed:
+    - name: {{ ca_file }}
+    - contents_pillar: nova:{{ role }}:message_queue:x509:cacert
+    - mode: 444
+    - user: nova
+    - group: nova
+    - makedirs: true
+  {%- else %}
+  file.exists:
+    - name: {{ ca_file }}
+  {%- endif %}
+
+rabbitmq_nova_{{ role }}_ssl_cert:
+  {%- if nova_msg.x509.cert is defined %}
+  file.managed:
+    - name: {{ cert_file }}
+    - contents_pillar: nova:{{ role }}:message_queue:x509:cert
+    - mode: 440
+    - user: nova
+    - group: nova
+    - makedirs: true
+  {%- else %}
+  file.exists:
+    - name: {{ cert_file }}
+  {%- endif %}
+
+rabbitmq_nova_{{ role }}_client_ssl_private_key:
+  {%- if nova_msg.x509.key is defined %}
+  file.managed:
+    - name: {{ key_file }}
+    - contents_pillar: nova:{{ role }}:message_queue:x509:key
+    - mode: 400
+    - user: nova
+    - group: nova
+    - makedirs: true
+  {%- else %}
+  file.exists:
+    - name: {{ key_file }}
+  {%- endif %}
+
+rabbitmq_nova_{{ role }}_ssl_x509_set_user_and_group:
+  file.managed:
+    - names:
+      - {{ ca_file }}
+      - {{ cert_file }}
+      - {{ key_file }}
+    - user: nova
+    - group: nova
+
+  {% elif nova_msg.get('ssl',{}).get('enabled',False) %}
+rabbitmq_ca_nova_client_{{ role }}:
+  {%- if nova_msg.ssl.cacert is defined %}
+  file.managed:
+    - name: {{ nova_msg.ssl.cacert_file }}
+    - contents_pillar: nova:{{ role }}:message_queue:ssl:cacert
+    - mode: 0444
+    - makedirs: true
+  {%- else %}
+  file.exists:
+    - name: {{ nova_msg.ssl.get('cacert_file', nova_cacert) }}
+  {%- endif %}
+
+{%- endif %}
diff --git a/nova/controller.sls b/nova/controller.sls
index 2b5d515..9052c62 100644
--- a/nova/controller.sls
+++ b/nova/controller.sls
@@ -11,7 +11,7 @@
   # Move to appropriate upgrade phase
   - nova.db.online_sync
   - nova._ssl.mysql
-
+  - nova._ssl.rabbitmq
 {%- if grains.os_family == 'Debian' %}
 debconf-set-prerequisite:
     pkg.installed:
@@ -61,6 +61,7 @@
   - require_in:
     - pkg: nova_controller_packages
     - sls: nova._ssl.mysql
+    - sls: nova._ssl.rabbitmq
 {%- if controller.version not in ["juno", "kilo", "liberty", "mitaka", "newton"] %}
     - pkg: nova_placement_package
 {%- endif %}
@@ -171,6 +172,7 @@
   - require:
     - pkg: nova_controller_packages
     - sls: nova._ssl.mysql
+    - sls: nova._ssl.rabbitmq
   - require_in:
     - sls: nova.db.offline_sync
     - sls: nova.db.online_sync
@@ -450,6 +452,7 @@
   - require:
     - sls: nova.db.offline_sync
     - sls: nova._ssl.mysql
+    - sls: nova._ssl.rabbitmq
   - require_in:
     - sls: nova.db.online_sync
   - watch:
diff --git a/nova/files/pike/nova-compute.conf.Debian b/nova/files/pike/nova-compute.conf.Debian
index fc34f4c..75fc533 100644
--- a/nova/files/pike/nova-compute.conf.Debian
+++ b/nova/files/pike/nova-compute.conf.Debian
@@ -8039,13 +8039,22 @@
 {%- if compute.message_queue.get('ssl',{}).get('enabled', False) %}
 rabbit_use_ssl=true
 
-{%- if compute.message_queue.ssl.version is defined %}
+  {%- if compute.message_queue.ssl.version is defined %}
 kombu_ssl_version = {{ compute.message_queue.ssl.version }}
-{%- elif salt['grains.get']('pythonversion') > [2,7,8] %}
+  {%- elif salt['grains.get']('pythonversion') > [2,7,8] %}
 kombu_ssl_version = TLSv1_2
-{%- endif %}
+  {%- endif %}
 
+  {%- if compute.message_queue.get('x509',{}).get('enabled', False) %}
+kombu_ssl_ca_certs = {{ compute.message_queue.x509.ca_file}}
+
+kombu_ssl_keyfile = {{ compute.message_queue.x509.key_file}}
+
+kombu_ssl_certfile = {{ compute.message_queue.x509.cert_file}}
+
+  {%- else %}
 kombu_ssl_ca_certs = {{ compute.message_queue.ssl.get('cacert_file', compute.cacert_file) }}
+  {%- endif %}
 {%- endif %}
 
 
diff --git a/nova/files/pike/nova-controller.conf.Debian b/nova/files/pike/nova-controller.conf.Debian
index 34451c2..1d21f4e 100644
--- a/nova/files/pike/nova-controller.conf.Debian
+++ b/nova/files/pike/nova-controller.conf.Debian
@@ -7998,13 +7998,23 @@
 {%- if controller.message_queue.get('ssl',{}).get('enabled', False) %}
 rabbit_use_ssl=true
 
-{%- if controller.message_queue.ssl.version is defined %}
+  {%- if controller.message_queue.ssl.version is defined %}
 kombu_ssl_version = {{ controller.message_queue.ssl.version }}
-{%- elif salt['grains.get']('pythonversion') > [2,7,8] %}
+  {%- elif salt['grains.get']('pythonversion') > [2,7,8] %}
 kombu_ssl_version = TLSv1_2
-{%- endif %}
+  {%- endif %}
 
+  {%- if controller.message_queue.get('x509',{}).get('enabled', False) %}
+kombu_ssl_ca_certs = {{ controller.message_queue.x509.ca_file}}
+
+kombu_ssl_keyfile = {{ controller.message_queue.x509.key_file}}
+
+kombu_ssl_certfile = {{ controller.message_queue.x509.cert_file}}
+
+  {%- else %}
 kombu_ssl_ca_certs = {{ controller.message_queue.ssl.get('cacert_file', controller.cacert_file) }}
+  {%- endif %}
+
 {%- endif %}
 
 [oslo_messaging_zmq]
diff --git a/nova/map.jinja b/nova/map.jinja
index 7e0006f..b929b88 100644
--- a/nova/map.jinja
+++ b/nova/map.jinja
@@ -179,9 +179,7 @@
   - pm-utils
   - sysfsutils
   - sg3-utils
-  - libvirt-bin
   - python-memcache
-  - qemu-kvm
   - python-guestfs
   - gettext-base
   services:
