From 1ca2e5226be3e8ecb5c9125601594dc7e0f56b78 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sun, 30 Sep 2018 21:36:27 +0200 Subject: [PATCH] Fix MQTT certificates (#16999) --- homeassistant/components/mqtt/__init__.py | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/homeassistant/components/mqtt/__init__.py b/homeassistant/components/mqtt/__init__.py index 70f20453633..874f21e5168 100644 --- a/homeassistant/components/mqtt/__init__.py +++ b/homeassistant/components/mqtt/__init__.py @@ -424,25 +424,22 @@ async def async_setup_entry(hass, entry): keepalive = conf[CONF_KEEPALIVE] username = conf.get(CONF_USERNAME) password = conf.get(CONF_PASSWORD) + certificate = conf.get(CONF_CERTIFICATE) client_key = conf.get(CONF_CLIENT_KEY) client_cert = conf.get(CONF_CLIENT_CERT) tls_insecure = conf.get(CONF_TLS_INSECURE) protocol = conf[CONF_PROTOCOL] # For cloudmqtt.com, secured connection, auto fill in certificate - if (conf.get(CONF_CERTIFICATE) is None and - 19999 < conf[CONF_PORT] < 30000 and - conf[CONF_BROKER].endswith('.cloudmqtt.com')): + if (certificate is None and 19999 < conf[CONF_PORT] < 30000 and + broker.endswith('.cloudmqtt.com')): certificate = os.path.join( os.path.dirname(__file__), 'addtrustexternalcaroot.crt') # When the certificate is set to auto, use bundled certs from requests - elif conf.get(CONF_CERTIFICATE) == 'auto': + elif certificate == 'auto': certificate = requests.certs.where() - else: - certificate = None - if CONF_WILL_MESSAGE in conf: will_message = Message(**conf[CONF_WILL_MESSAGE]) else: