diff --git a/mighttpd2.cabal b/mighttpd2.cabal
--- a/mighttpd2.cabal
+++ b/mighttpd2.cabal
@@ -1,5 +1,5 @@
 Name:                   mighttpd2
-Version:                3.2.5
+Version:                3.2.6
 Author:                 Kazu Yamamoto <kazu@iij.ad.jp>
 Maintainer:             Kazu Yamamoto <kazu@iij.ad.jp>
 License:                BSD3
diff --git a/src/Server.hs b/src/Server.hs
--- a/src/Server.hs
+++ b/src/Server.hs
@@ -58,13 +58,7 @@
     svc <- openService opt
     unless debug writePidFile
     rdr <- newRouteDBRef route
-#ifdef HTTP_OVER_TLS
-    cert <- BS.readFile $ opt_tls_cert_file opt
-    key  <- BS.readFile $ opt_tls_key_file opt
-    let tlsSetting = tlsSettingsMemory cert key
-#else
-    let tlsSetting = TLSSettings
-#endif
+    tlsSetting <- getTlsSetting opt
     setGroupUser (opt_user opt) (opt_group opt)
     logCheck logtype
     (zdater,_) <- clockDateCacher
@@ -123,6 +117,18 @@
         ifRouteFileIsValid rpt opt $ \newroute -> do
             writeRouteDBRef rdr newroute
             report rpt "Mighty reloaded"
+
+getTlsSetting :: Option -> IO TLSSettings
+getTlsSetting _opt =
+#ifdef HTTP_OVER_TLS
+    case opt_service _opt of
+        0 -> return defaultTlsSettings -- this is dummy
+        _ -> do cert <- BS.readFile $ opt_tls_cert_file _opt
+                key  <- BS.readFile $ opt_tls_key_file _opt
+                return $ tlsSettingsMemory cert key
+#else
+    return TLSSettings
+#endif
 
 ----------------------------------------------------------------
 
