mirror of
https://github.com/rkd77/elinks.git
synced 2024-11-02 08:57:19 -04:00
[ssl] Introduced option "connection.ssl.gemini_cert_verify"
gemini sites often have self-signed certificates. This option allow to enable or disable verification of certificates independently from https protocol.
This commit is contained in:
parent
c05e1567e1
commit
40884da51f
@ -479,11 +479,24 @@ ssl_connect(struct socket *socket)
|
|||||||
SSL_set_fd((SSL *)socket->ssl, ssl_sock_fd);
|
SSL_set_fd((SSL *)socket->ssl, ssl_sock_fd);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (socket->verify && get_opt_bool("connection.ssl.cert_verify", NULL))
|
if (socket->verify) {
|
||||||
|
if (conn->proxied_uri->protocol == PROTOCOL_HTTPS) {
|
||||||
|
if (get_opt_bool("connection.ssl.cert_verify", NULL)) {
|
||||||
SSL_set_verify((SSL *)socket->ssl, SSL_VERIFY_PEER
|
SSL_set_verify((SSL *)socket->ssl, SSL_VERIFY_PEER
|
||||||
| SSL_VERIFY_FAIL_IF_NO_PEER_CERT,
|
| SSL_VERIFY_FAIL_IF_NO_PEER_CERT,
|
||||||
verify_callback);
|
verify_callback);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#ifdef CONFIG_GEMINI
|
||||||
|
else if (conn->proxied_uri->protocol == PROTOCOL_GEMINI) {
|
||||||
|
if (get_opt_bool("connection.ssl.gemini_cert_verify", NULL)) {
|
||||||
|
SSL_set_verify((SSL *)socket->ssl, SSL_VERIFY_PEER
|
||||||
|
| SSL_VERIFY_FAIL_IF_NO_PEER_CERT,
|
||||||
|
verify_callback);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
if (get_opt_bool("connection.ssl.client_cert.enable", NULL)) {
|
if (get_opt_bool("connection.ssl.client_cert.enable", NULL)) {
|
||||||
char *client_cert;
|
char *client_cert;
|
||||||
|
|
||||||
|
@ -177,7 +177,12 @@ static union option_info openssl_options[] = {
|
|||||||
"cert_verify", OPT_ZERO, 1,
|
"cert_verify", OPT_ZERO, 1,
|
||||||
N_("Verify the peer's SSL certificate. Note that this "
|
N_("Verify the peer's SSL certificate. Note that this "
|
||||||
"needs extensive configuration of OpenSSL by the user.")),
|
"needs extensive configuration of OpenSSL by the user.")),
|
||||||
|
#ifdef CONFIG_GEMINI
|
||||||
|
INIT_OPT_BOOL("connection.ssl", N_("Verify certificates for gemini protocol"),
|
||||||
|
"gemini_cert_verify", OPT_ZERO, 1,
|
||||||
|
N_("Verify the peer's SSL certificate for gemini protocol. Note that this "
|
||||||
|
"needs extensive configuration of OpenSSL by the user.")),
|
||||||
|
#endif
|
||||||
INIT_OPT_BOOL("connection.ssl", N_("Use HTTPS by default"),
|
INIT_OPT_BOOL("connection.ssl", N_("Use HTTPS by default"),
|
||||||
"https_by_default", OPT_ZERO, 0,
|
"https_by_default", OPT_ZERO, 0,
|
||||||
N_("Use HTTPS when a URL scheme is not provided.")),
|
N_("Use HTTPS when a URL scheme is not provided.")),
|
||||||
@ -312,7 +317,12 @@ static union option_info gnutls_options[] = {
|
|||||||
"cert_verify", OPT_ZERO, 0,
|
"cert_verify", OPT_ZERO, 0,
|
||||||
N_("Verify the peer's SSL certificate. If you enable "
|
N_("Verify the peer's SSL certificate. If you enable "
|
||||||
"this, set also \"Trusted CA file\".")),
|
"this, set also \"Trusted CA file\".")),
|
||||||
|
#ifdef CONFIG_GEMINI
|
||||||
|
INIT_OPT_BOOL("connection.ssl", N_("Verify certificates for gemini protocol"),
|
||||||
|
"gemini_cert_verify", OPT_ZERO, 1,
|
||||||
|
N_("Verify the peer's SSL certificate for gemini protocol. If you enable "
|
||||||
|
"this, set also \"Trusted CA file\".")),
|
||||||
|
#endif
|
||||||
INIT_OPT_BOOL("connection.ssl", N_("Use HTTPS by default"),
|
INIT_OPT_BOOL("connection.ssl", N_("Use HTTPS by default"),
|
||||||
"https_by_default", OPT_ZERO, 0,
|
"https_by_default", OPT_ZERO, 0,
|
||||||
N_("Use HTTPS when a URL scheme is not provided.")),
|
N_("Use HTTPS when a URL scheme is not provided.")),
|
||||||
|
Loading…
Reference in New Issue
Block a user