We should default to being safe.
memset(&ssl_set, 0, sizeof(ssl_set));
ssl_set.verify_remote_cert = TRUE;
- ssl_set.require_valid_cert = TRUE;
ssl_set.verbose_invalid_cert = TRUE;
if (io_stream_create_ssl_client(conn->server->ssl_ctx,
if (ssl_iostream_check_cert_validity(conn->ssl_iostream, host, &error) == 0)
http_client_connection_debug(conn, "SSL handshake successful");
- else if (!conn->client->set.ssl->require_valid_cert) {
+ else if (conn->client->set.ssl->allow_invalid_cert) {
http_client_connection_debug(conn, "SSL handshake successful, "
"ignoring invalid certificate: %s", error);
} else {
i_assert(conn->client->ssl_ctx != NULL);
memset(&ssl_set, 0, sizeof(ssl_set));
- if (conn->client->set.ssl->require_valid_cert) {
+ if (!conn->client->set.ssl->allow_invalid_cert) {
ssl_set.verbose_invalid_cert = TRUE;
ssl_set.verify_remote_cert = TRUE;
- ssl_set.require_valid_cert = TRUE;
}
if (conn->client->set.debug)
i_fatal("Couldn't initialize DNS client: %s", error);
memset(&ssl_set, 0, sizeof(ssl_set));
- ssl_set.require_valid_cert = FALSE;
+ ssl_set.allow_invalid_cert = TRUE;
ssl_set.ca_dir = "/etc/ssl/certs"; /* debian */
ssl_set.ca_file = "/etc/pki/tls/cert.pem"; /* redhat */
if (conn->client->set.ssl_verify) {
ssl_set.verbose_invalid_cert = TRUE;
ssl_set.verify_remote_cert = TRUE;
- ssl_set.require_valid_cert = TRUE;
}
if (conn->client->set.debug)
}
if (preverify_ok == 0) {
ssl_io->cert_broken = TRUE;
- if (ssl_io->require_valid_cert) {
+ if (!ssl_io->allow_invalid_cert) {
ssl_io->handshake_failed = TRUE;
return 0;
}
ssl_io->verbose = set->verbose;
ssl_io->verbose_invalid_cert = set->verbose_invalid_cert || set->verbose;
- ssl_io->require_valid_cert = set->require_valid_cert;
+ ssl_io->allow_invalid_cert = set->allow_invalid_cert;
return 0;
}
int plain_stream_errno;
/* copied settings */
- bool verbose, verbose_invalid_cert, require_valid_cert;
+ bool verbose, verbose_invalid_cert, allow_invalid_cert;
int username_nid;
ssl_iostream_handshake_callback_t *handshake_callback;
bool verbose, verbose_invalid_cert; /* stream-only */
bool verify_remote_cert; /* neither/both */
- bool require_valid_cert; /* stream-only */
+ bool allow_invalid_cert; /* stream-only */
bool prefer_server_ciphers;
bool compression;
bool tickets;
if (client->set.ssl_verify) {
ssl_set.verbose_invalid_cert = TRUE;
ssl_set.verify_remote_cert = TRUE;
- ssl_set.require_valid_cert = TRUE;
}
if (client->set.debug)