Use default ca_path /etc/ssl/certs on all systems #9005
This fixes the problem of the invalid /nonexistent_path path making all certificate validation fail on Fedora. /etc/ssl/certs only recently started working like on Debian, but it is enough that ca_info works, as long as /etc/ssl/certs exists and doesn't make cert validation fail.
This commit is contained in:
parent
f8ce185205
commit
d069aa7a56
@ -97,19 +97,11 @@ HttpGet::setup_certificate_paths ()
|
|||||||
}
|
}
|
||||||
// else NULL: use default (currently) "/etc/ssl/certs/ca-certificates.crt" if it exists
|
// else NULL: use default (currently) "/etc/ssl/certs/ca-certificates.crt" if it exists
|
||||||
|
|
||||||
if (Glib::file_test ("/etc/pki/tls/certs/ca-bundle.crt", Glib::FILE_TEST_EXISTS|Glib::FILE_TEST_IS_DIR)) {
|
|
||||||
// we're on RHEL // https://bugzilla.redhat.com/show_bug.cgi?id=1053882
|
|
||||||
ca_path = "/nonexistent_path"; // don't try "/etc/ssl/certs" in case it's curl's default
|
|
||||||
}
|
|
||||||
else if (Glib::file_test ("/etc/ssl/certs", Glib::FILE_TEST_EXISTS|Glib::FILE_TEST_IS_DIR)) {
|
|
||||||
// Debian and derivs + OpenSuSe
|
|
||||||
ca_path = "/etc/ssl/certs";
|
|
||||||
} else {
|
|
||||||
ca_path = "/nonexistent_path"; // don't try -- just in case:
|
|
||||||
}
|
|
||||||
|
|
||||||
/* If we don't set anything defaults are used. at the time of writing we compile bundled curl on debian
|
/* If we don't set anything defaults are used. at the time of writing we compile bundled curl on debian
|
||||||
* and it'll default to /etc/ssl/certs and /etc/ssl/certs/ca-certificates.crt
|
* and it'll default to /etc/ssl/certs and /etc/ssl/certs/ca-certificates.crt
|
||||||
|
* That works on Debian and derivs + openSUSE. It has historically not
|
||||||
|
* worked on RHEL / Fedora, but worst case the directory exists and doesn't
|
||||||
|
* prevent ca_info from working. https://bugzilla.redhat.com/show_bug.cgi?id=1053882
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user