diff --git a/c/opendht.cpp b/c/opendht.cpp
index 87dc6e3804707ecb4a472ddcc4482a444f3f91aa..f5db5773b4997e7ce69eeb7822e6db96e767d2d8 100644
--- a/c/opendht.cpp
+++ b/c/opendht.cpp
@@ -348,7 +348,8 @@ int dht_runner_run_config(dht_runner* r, in_port_t port, const dht_runner_config
         config.proxy_user_agent = conf->proxy_user_agent ? std::string(conf->proxy_user_agent) : std::string{};
         config.peer_discovery   = conf->peer_discovery;
         config.peer_publish     = conf->peer_publish;
-        config.server_ca        = *reinterpret_cast<const CertSp*>(conf->server_ca);
+        if (conf->server_ca)
+            config.server_ca    = *reinterpret_cast<const CertSp*>(conf->server_ca);
         config.client_identity  = dht_identity_from_c(&conf->client_identity);
 
         dht::DhtRunner::Context context;