diff --git a/changelog.d/4524.feature b/changelog.d/4524.feature
new file mode 100644
index 0000000000000000000000000000000000000000..fc2b5daf637ea5190d887d34b7c511bb8094e150
--- /dev/null
+++ b/changelog.d/4524.feature
@@ -0,0 +1 @@
+Synapse will now reload TLS certificates from disk upon SIGHUP.
diff --git a/synapse/app/homeserver.py b/synapse/app/homeserver.py
index 019b91576fbf332d5db4791c8c9115cf33ad3023..250a17cef8650d0519e30302007b6faaad3384b1 100755
--- a/synapse/app/homeserver.py
+++ b/synapse/app/homeserver.py
@@ -95,7 +95,9 @@ class SynapseHomeServer(HomeServer):
         site_tag = listener_config.get("tag", port)
 
         if tls and config.no_tls:
-            return
+            raise ConfigError(
+                "Listener on port %i has TLS enabled, but no_tls is set" % (port,),
+            )
 
         resources = {}
         for res in listener_config["resources"]: