Jak poradzić sobie z certyfikatami używającymi cURL podczas próby uzyskania dostępu do adresu URL HTTPS?
Otrzymuję następujący błąd przy użyciu curl:
curl: (77) error setting certificate verify locations: CAfile: /etc/ssl/certs/ca-certificates.crt CApath: none
Jak ustawić ten certyfikat verify locations? Dzięki.
18 answers
Ten błąd jest związany z brakującym pakietem: ca-certificates
. Zainstaluj.
W Ubuntu Linux (i podobne distro):
# apt-get install ca-certificates
In CygWin via Apt-Cyg
# apt-cyg install ca-certificates
W Arch Linux (Raspberry Pi)
# pacman -S ca-certificates
Dokumentacja mówi:
Ten pakiet zawiera pliki pem certyfikatów CA, aby umożliwić aplikacjom opartym na SSL sprawdzanie autentyczności połączeń SSL.
Jak widać na stronie: Debian -- szczegóły pakietu ca-certyfikaty w squeeze
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-14 18:09:21
Miałem również zainstalowaną najnowszą wersję ca-certificates, ale nadal otrzymywał błąd:
curl: (77) error setting certificate verify locations:
CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
Problem polegał na tym, że curl oczekiwał, że certyfikat będzie na ścieżce /etc/pki/tls/certs/ca-bundle.crt
, ale nie mógł go znaleźć, ponieważ znajdował się na ścieżce /etc/ssl/certs/ca-certificates.crt
.
Kopiowanie certyfikatu do oczekiwanego miejsca docelowego przez uruchomienie
sudo cp /etc/ssl/certs/ca-certificates.crt /etc/pki/tls/certs/ca-bundle.crt
Zadziałało dla mnie. Będziesz musiał utworzyć foldery dla docelowego miejsca docelowego, jeśli nie istnieją, uruchamiając
sudo mkdir -p /etc/pki/tls/certs
W razie potrzeby zmodyfikuj powyższe polecenie aby nazwa pliku docelowego była zgodna ze ścieżką oczekiwaną przez curl, np. zastąp /etc/pki/tls/certs/ca-bundle.crt
ścieżką następującą po "CAfile:" w komunikacie o błędzie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-20 13:53:32
Włóż to do swojego .bashrc
# fix CURL certificates path
export CURL_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt
(Zobacz komentarz od Roberta)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-25 20:43:20
Utwórz plik ~/.curlrc
o następującej treści
cacert=/etc/ssl/certs/ca-certificates.crt
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-17 08:00:01
Najszybszym sposobem obejścia błędu jest dodanie opcji-k gdzieś w żądaniu curl. Ta opcja " umożliwia połączenia z SSL cites bez Cert."(z curl --help)
Należy pamiętać, że może to oznaczać, że nie rozmawiasz z punktem końcowym, za który uważasz, że jesteś, ponieważ prezentują certyfikat nie podpisany przez zaufany urząd certyfikacji.
Na przykład:
$ curl -o /usr/bin/apt-cyg https://raw.github.com/cfg/apt-cyg/master/apt-cyg
Dał mi następującą odpowiedź błędu:
curl: (77) error setting certificate verify locations:
CAfile: /usr/ssl/certs/ca-bundle.crt
CApath: none
Dodałem na-k:
curl -o /usr/bin/apt-cyg https://raw.github.com/cfg/apt-cyg/master/apt-cyg -k
I żadnego błędu wiadomość. Jako bonus, teraz mam zainstalowany apt-cyg. I certyfikaty ca.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-14 18:15:48
@roens ma rację. Dotyczy to wszystkich użytkowników Anaconda , z poniższym błędemcurl: (77) error setting certificate verify locations:
CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
Obejściem jest użycie domyślnego systemowego curl i unikanie mieszania się ze zmienną Anaconda PATH
. Możesz albo
Zmień nazwę pliku binarnego Anaconda curl:)
mv /path/to/anaconda/bin/curl /path/to/anaconda/bin/curl_anaconda
Lub Usuń Anaconda curl
conda remove curl
$ which curl
/usr/bin/curl
[0] Anaconda Ubuntu curl Github problem https://github.com/conda/conda-recipes/issues/352
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-14 06:56:01
From $ man curl
:
--cert-type <type>
(SSL) Tells curl what certificate type the provided certificate
is in. PEM, DER and ENG are recognized types. If not specified,
PEM is assumed.
If this option is used several times, the last one will be used.
--cacert <CA certificate>
(SSL) Tells curl to use the specified certificate file to verify
the peer. The file may contain multiple CA certificates. The
certificate(s) must be in PEM format. Normally curl is built to
use a default file for this, so this option is typically used to
alter that default file.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-04 19:54:27
Inną alternatywą do rozwiązania tego problemu jest wyłączenie walidacji certyfikatu:
echo insecure >> ~/.curlrc
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-12 15:31:28
Dla kodu PHP działającego na XAMPP w systemie Windows stwierdziłem, że muszę edytować php.ini to include the below
[curl]
; A default value for the CURLOPT_CAINFO option. This is required to be an
; absolute path.
curl.cainfo = curl-ca-bundle.crt
A następnie skopiuj do pliku https://curl.haxx.se/ca/cacert.pem I zmienić nazwę na curl-ca-bundle.crt i umieść go pod ścieżką \xampp (nie mogłem uzyskać curl.capath do pracy). Okazało się również, że CAbundle na stronie cURL nie wystarcza do zdalnej strony, z którą się łączyłem, więc użyłem tego, który jest wymieniony z wstępnie skompilowaną wersją systemu Windows curl 7.47.1 w http://winampplugins.co.uk/curl/
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-12 10:18:53
Wygląda na to, że Twój curl wskazuje na nieistniejący Plik z certyfikatami CA lub podobnym.
Aby uzyskać podstawowe odniesienie do CERTÓW CA z curl, Zobacz: https://curl.haxx.se/docs/sslcerts.html
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-01 11:57:02
To zadziałało dla mnie
sudo apt-get install ca-certificates
Następnie przejdź do folderu certyfikaty na
sudo cd /etc/ssl/certs
Następnie kopiujesz certyfikaty ca.plik crt do /etc/pki/tls/certs
sudo cp ca-certificates.crt /etc/pki/tls/certs
jeśli nie ma folderu TLS/certs: utwórz go i zmień uprawnienia używając chmod 777-r folderNAME
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-16 13:12:55
Jeśli to coś warte, sprawdzanie which curl
jest uruchamiane również jest istotne.
Użytkownik na współdzielonej maszynie, którą utrzymuję, otrzymywał ten błąd. Ale okazało się, że przyczyną było zainstalowanie Anakondy ( http://continuum.io ). w ten sposób umieściliśmy ścieżkę binarną Anacondy przed standardowym $PATH
, i jest ona dostarczana z własnym curl
binarnym, który miał problemy ze znalezieniem domyślnych Cert, którebyły zainstalowane na tej maszynie Ubuntu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-17 19:17:50
Miałem dokładnie ten sam problem. Jak się okazało, mój plik /etc/ssl/certs/ca-certificates.crt
był zniekształcony. Ostatni wpis pokazał coś takiego:
-----BEGIN CERTIFICATE-----
MIIEDTCCAvWgAwIBAgIJAN..lots of certificate text....AwIBAgIJAN-----END CERTIFICATE-----
Po dodaniu nowej linii przed -----END CERTIFICATE-----
, curl był w stanie obsłużyć plik certificates.
To było bardzo irytujące, ponieważ moje polecenie update-ca-certificates
nie dało mi żadnego ostrzeżenia.
Może to być problem specyficzny dla wersji curl, więc oto moja wersja, tylko dla kompletności:
curl --version
# curl 7.51.0 (x86_64-alpine-linux-musl) libcurl/7.51.0 OpenSSL/1.0.2j zlib/1.2.8 libssh2/1.7.0
# Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp
# Features: IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP UnixSockets
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-21 13:51:49
Curl domyślnie wykonuje weryfikację certyfikatu SSL
, używając " bundle"
z Certificate Authority (CA)
kluczy publicznych (CA cert). Default
pakiet nazywa się curl-ca-bundle.crt; można określić plik alternatywny
użycie opcji --cacert.
Jeśli serwer HTTPS
używa certyfikatu podpisanego przez CA reprezentowanego w
pakietu, weryfikacja certyfikatu prawdopodobnie nie powiodła się z powodu
problem z certyfikatem (może wygasnąć lub nazwa może
nie pasuje do nazwy domeny w adresie URL).
Jeśli chcesz wyłączyć weryfikację certyfikatu curl, użyj
opcja -k (lub --insecure
).
Na przykład
curl --insecure http://........
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-21 01:38:26
Uruchom następujące polecenie w git bash, które działa dobrze dla mnie
git config --global http.sslverify "false"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-19 18:25:16
Błąd jest spowodowany uszkodzonymi lub brakującymi plikami certyfikatu łańcucha SSL w katalogu PKI. Musisz upewnić się, że pliki ca-bundle, wykonując następujące kroki: W konsoli / terminalu:
mkdir /usr/src/ca-certificates && cd /usr/src/ca-certificates
Enter this site: https://rpmfind.net/linux/rpm2html/search.php?query=ca-certificates , Zdobądź certyfikat ca, dla SO. Skopiuj adres URL pobierania i wklej w url: wget your_url_donwload_ca-ceritificated.rpm teraz zainstaluj sobie rpm:
rpm2cpio your_url_donwload_ca-ceritificated.rpm | cpio -idmv
Teraz uruchom ponownie usługę: mój przykład to polecenie:
sudo service2 httpd restart
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-29 15:46:18
To dla mnie ustalone:
curl --remote-name --time-cond cacert.pem \
https://curl.haxx.se/ca/cacert.pem
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-14 09:28:51
Miałem ten sam problem.
To był mój błąd
error setting ce
rtificate verify locations:
CAfile: D:/git_repo/mingw32/ssl/certs/ca-bundle.crt
CApath: none
To działa dobrze dla mnie
Zmieniam nazwę katalogu instalacyjnego git na git_repo ".
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-14 08:41:29