if (store->data->ocsp_update_mode != SSL_SOCK_OCSP_UPDATE_DFLT || entry->ssl_conf) {
if ((!entry->ssl_conf && store->data->ocsp_update_mode == SSL_SOCK_OCSP_UPDATE_ON)
|| (entry->ssl_conf && store->data->ocsp_update_mode != entry->ssl_conf->ocsp_update)) {
memprintf(err, "%sIncompatibilities found in OCSP update mode for certificate %s\n", err && *err ? *err : "", crt_path);
err_code |= ERR_ALERT | ERR_FATAL;
}
}
return err_code;
}
store->data->ocsp_update_mode is saying there’s a structure of store->date within the ocsp_update_mode and first it checks to see if that value does not equal SSL_SOCK_OCSP_UPDATE_DFLT OR if there is no entry in ssl_conf
ssl_conf is an openssl library
Next it checks if (no entry in ssl_config AND the ocsp_update_mode == SSL_SOCK_OCSP_UPDATE_ON)
OR
ssl_conf does have config && ocps_update_mode does not equal the ocsp_update entry from within ssl_conf then error.
Just to give you an idea of what’s going on take a look at this file where it’s setting two different objects with different structures within the same variable. See that both check for the existence of ssl_conf first and then set ckchs->data and store->date (ckchs, store).
ssl_crtlist.c -- This is setting the ocsp_update_mode based on the
if (entry->ssl_conf)
ckchs->data->ocsp_update_mode = entry->ssl_conf->ocsp_update;
if (entry->ssl_conf)
store->data->ocsp_update_mode = entry->ssl_conf->ocsp_update;
ssl_sock-t.h sets the variables - This is actually setting the mode - so it’s either default, off or on.
/* bind ocsp update mode */
enum {
SSL_SOCK_OCSP_UPDATE_DFLT = 0,
SSL_SOCK_OCSP_UPDATE_OFF = 1,
SSL_SOCK_OCSP_UPDATE_ON = 2,
};
So basically it’s saying the update mode isn’t default or there’s no entry in ssl_conf, so now if no entry in ssl_conf and ocsp_udapte_mode equals OCSP_UPDATE_ON (2) OR if there is an entry in ssl_conf and the ocsp_update_mode does not equal ocsp_update from ssl_conf then throw the error. In short I suspect that it’s failing to load that cert but that’s just a guess. Is your pem file password protected and does it contain a trusted URI?
If you haven’t already it might be worth running through this and checking for a valid response first and make sure the files all load just fine.