mirror of
https://github.com/moparisthebest/curl
synced 2025-01-10 21:48:10 -05:00
FAQ: refresh "Why do I get "certificate verify failed"
Add more details, remove references to ancient curl version.
This commit is contained in:
parent
ee644bc8b3
commit
3864ad37e1
39
docs/FAQ
39
docs/FAQ
@ -913,27 +913,32 @@ FAQ
|
|||||||
|
|
||||||
4.12 Why do I get "certificate verify failed" ?
|
4.12 Why do I get "certificate verify failed" ?
|
||||||
|
|
||||||
You invoke curl 7.10 or later to communicate on a https:// URL and get an
|
When you invoke curl and get an error 60 error back it means that curl
|
||||||
error back looking something similar to this:
|
couldn't verify that the server's certificate was good. curl verifies the
|
||||||
|
certificate using the CA cert bundle and verifying for which names the
|
||||||
|
certficiate has been granted.
|
||||||
|
|
||||||
curl: (35) SSL: error:14090086:SSL routines:
|
To completely disable the certficiate verification, use -k. This does
|
||||||
SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
|
however enable man-in-the-middle attacks and makes the transfer INSECURE.
|
||||||
|
We strongly advice against doing this for more than experiments.
|
||||||
|
|
||||||
Then it means that curl couldn't verify that the server's certificate was
|
If you get this failure with a CA cert bundle installed and used, the
|
||||||
good. curl verifies the certificate using the CA cert bundle that comes with
|
server's certificate might not be signed by one of the CA's in yout CA
|
||||||
the curl installation.
|
store. It might for example be self-signed. You then correct this problem by
|
||||||
|
obtaining a valid CA cert for the server. Or again, decrease the security by
|
||||||
|
disabling this check.
|
||||||
|
|
||||||
To disable the verification (which makes it act like curl did before 7.10),
|
At times, you find that the verification works in your favorite browser but
|
||||||
use -k. This does however enable man-in-the-middle attacks.
|
fails in curl. When this happens, the reason is usually that the server
|
||||||
|
sends an incomplete cert chain. The server is mandated to send all
|
||||||
|
"intermediate certificates" but doesn't. This typically works with browsers
|
||||||
|
anyway since they A) cache such certs and B) supports AIA which downloads
|
||||||
|
such missing certificates on demand. This is a server misconfiguration. A
|
||||||
|
good way to figure out if this is the case it to use the SSL Labs server
|
||||||
|
test and check the certificate chain: https://www.ssllabs.com/ssltest/
|
||||||
|
|
||||||
If you get this failure but are having a CA cert bundle installed and used,
|
Details are also in the SSLCERTS.md document, found online here:
|
||||||
the server's certificate is not signed by one of the CA's in the bundle. It
|
https://curl.se/docs/sslcerts.html
|
||||||
might for example be self-signed. You then correct this problem by obtaining
|
|
||||||
a valid CA cert for the server. Or again, decrease the security by disabling
|
|
||||||
this check.
|
|
||||||
|
|
||||||
Details are also in the SSLCERTS file in the release archives, found online
|
|
||||||
here: https://curl.se/docs/sslcerts.html
|
|
||||||
|
|
||||||
4.13 Why is curl -R on Windows one hour off?
|
4.13 Why is curl -R on Windows one hour off?
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user