diff --git a/ansible/roles/keystone/templates/wsgi-keystone.conf.j2 b/ansible/roles/keystone/templates/wsgi-keystone.conf.j2
index 7287e4b4671744e9f063bf043277fa796ba8a462..5c46c8be683c4d026ea7fec0613f6fed343fbfb3 100644
--- a/ansible/roles/keystone/templates/wsgi-keystone.conf.j2
+++ b/ansible/roles/keystone/templates/wsgi-keystone.conf.j2
@@ -1,3 +1,4 @@
+{% set apache_dir = 'apache2' if kolla_base_distro in ['ubuntu', 'debian'] else 'httpd' %}
 Listen {{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}:{{ keystone_public_port }}
 Listen {{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}:{{ keystone_admin_port }}
 
@@ -10,8 +11,8 @@ Listen {{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['addr
     <IfVersion >= 2.4>
       ErrorLogFormat "%{cu}t %M"
     </IfVersion>
-    ErrorLog /var/log/httpd/keystone.log
-    CustomLog /var/log/httpd/keystone_access.log combined
+    ErrorLog /var/log/{{ apache_dir }}/keystone.log
+    CustomLog /var/log/{{ apache_dir }}/keystone_access.log combined
 </VirtualHost>
 
 <VirtualHost *:{{ keystone_admin_port }}>
@@ -23,6 +24,6 @@ Listen {{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['addr
     <IfVersion >= 2.4>
       ErrorLogFormat "%{cu}t %M"
     </IfVersion>
-    ErrorLog /var/log/httpd/keystone.log
-    CustomLog /var/log/httpd/keystone_access.log combined
+    ErrorLog /var/log/{{ apache_dir }}/keystone.log
+    CustomLog /var/log/{{ apache_dir }}/keystone_access.log combined
 </VirtualHost>
diff --git a/docker/common/keystone/config-external.sh b/docker/common/keystone/config-external.sh
index 9742e3b127f76b538943dfdd8c7e846b15c66c96..1bd4e3bb4edf10d4d1f59a237452f74fb0282110 100644
--- a/docker/common/keystone/config-external.sh
+++ b/docker/common/keystone/config-external.sh
@@ -1,8 +1,6 @@
 #!/bin/bash
 SOURCE="/opt/kolla/keystone/keystone.conf"
 TARGET="/etc/keystone/keystone.conf"
-SOURCE_WSGI="/opt/kolla/keystone/wsgi-keystone.conf"
-TARGET_WSGI="/etc/httpd/conf.d/wsgi-keystone.conf"
 OWNER="keystone"
 
 if [[ -f "$SOURCE" ]]; then
@@ -11,6 +9,15 @@ if [[ -f "$SOURCE" ]]; then
     chmod 0644 $TARGET
 fi
 
+if [[ "${KOLLA_BASE_DISTRO}" == "ubuntu" || \
+        "${KOLLA_BASE_DISTRO}" == "debian" ]]; then
+    SOURCE_WSGI="/opt/kolla/keystone/wsgi-keystone.conf"
+    TARGET_WSGI="/etc/apache2/conf-enabled/wsgi-keystone.conf"
+else
+    SOURCE_WSGI="/opt/kolla/keystone/wsgi-keystone.conf"
+    TARGET_WSGI="/etc/httpd/conf.d/wsgi-keystone.conf"
+fi
+
 if [[ -f "$SOURCE_WSGI" ]]; then
     cp $SOURCE_WSGI $TARGET_WSGI
     chown ${OWNER}: $TARGET_WSGI
diff --git a/docker/common/keystone/start.sh b/docker/common/keystone/start.sh
index a68995f81cac3485af0b4e04cc07b04926535859..d964b0303c2a5e2b8904ee64d42da784cd7c38c1 100755
--- a/docker/common/keystone/start.sh
+++ b/docker/common/keystone/start.sh
@@ -2,12 +2,21 @@
 
 set -o errexit
 
-CMD="/usr/sbin/httpd"
-ARGS="-DFOREGROUND"
-
-# Loading common functions.
+# Loading common functions
 source /opt/kolla/kolla-common.sh
 
+if [[ "${KOLLA_BASE_DISTRO}" == "ubuntu" || \
+        "${KOLLA_BASE_DISTRO}" == "debian" ]]; then
+    CMD="/usr/sbin/apache2"
+    ARGS="-DFOREGROUND"
+
+    # Loading Apache2 ENV variables
+    source /etc/apache2/envvars
+else
+    CMD="/usr/sbin/httpd"
+    ARGS="-DFOREGROUND"
+fi
+
 # Execute config strategy
 set_configs
 
diff --git a/docker_templates/keystone/Dockerfile.j2 b/docker_templates/keystone/Dockerfile.j2
index f3b7e0e9fc72825f24e8d996ab4d2e5cece28851..3a69691fa243bdec68267450749897972e1a96af 100644
--- a/docker_templates/keystone/Dockerfile.j2
+++ b/docker_templates/keystone/Dockerfile.j2
@@ -42,7 +42,6 @@ RUN yum -y install \
 
 RUN apt-get install -y --no-install-recommends \
         apache2 \
-        keystone \
         libapache2-mod-wsgi \
     && apt-get clean
 
@@ -54,8 +53,8 @@ RUN ln -s /keystone-* /keystone
 RUN cd /keystone \
     && useradd --user-group keystone \
     && pip install -r requirements.txt \
-    && pip install /keystone \
-    && mkdir /etc/keystone /var/www/cgi-bin/keystone \
+    && pip install --install-option="--install-scripts=/usr/bin" /keystone \
+    && mkdir -p /etc/keystone /var/www/cgi-bin/keystone /var/log/apache2 /home/keystone \
     && cp -r /keystone/etc/* /etc/keystone/ \
     && cp -a httpd/keystone.py /var/www/cgi-bin/keystone/admin \
     && cp -a httpd/keystone.py /var/www/cgi-bin/keystone/main