Na jakim systemie operacyjnym / dystrybucji korzystasz? Powinieneś zainstalować pakiet ca-certyfikaty (tak się nazywa na debian / ubuntu).
igorw
40
Do przyszłego użytku mam już ca-certificateszainstalowany, ale błąd nadal występował. Problem polegał na tym, że /etc/ssl/certs/ca-certificates.crtzamiast nich znajdowały się moje certyfikaty /etc/pki/tls/certs/ca-bundle.crt, musiałem więc ustawić zmienną środowiskową CURL_CA_BUNDLEna właściwą ścieżkę.
Robert Smith,
13
Chłodny! Działa dla mnie, kiedy ustawiam export CURL_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt.
schludny
Odpowiedzi:
83
Ten błąd dotyczy brakującego pakietu : ca-certificates. Zainstaluj to.
Ca-certyfikaty to już najnowsza wersja, ale wciąż pojawia się błąd
Pastor Bones
2
Oczywiście ten sam błąd wystąpi, jeśli spróbujesz zainstalować apt-cyg za pomocą zalecanej metody przy użyciu curl i raw.github.com .
10gistic
11
W Arch Linux możesz także potrzebować pacman -S ca-certificates-utils. Zrobiłem.
Mark Grimes,
8
Ten pakiet jest już zainstalowany. Ta odpowiedź nie jest pomocna.
JimmyJames,
9
@PastorBones Miałem ten sam problem, że pakiet był już najnowszy, myślę, że został jednak uszkodzony, więc sudo apt install --reinstall ca-certificatesprzeinstalowałem pakiet i usunąłem błędy, które widziałem
Czy
153
Miałem również zainstalowaną najnowszą wersję certyfikatów ca, ale wciąż pojawiał się błąd:
Problem polegał na tym, że curl oczekiwał, że certyfikat będzie na ścieżce, /etc/pki/tls/certs/ca-bundle.crtale nie mógł go znaleźć, ponieważ był na ścieżce /etc/ssl/certs/ca-certificates.crt.
Skopiuj mój certyfikat do oczekiwanego miejsca docelowego, uruchamiając
pracował dla mnie. Będziesz musiał utworzyć foldery dla docelowego miejsca docelowego, jeśli nie istnieją przez uruchomienie
sudo mkdir -p /etc/pki/tls/certs
W razie potrzeby zmodyfikuj powyższą komendę, aby nazwa pliku docelowego była zgodna ze ścieżką oczekiwaną przez curl, tj. Zastąp /etc/pki/tls/certs/ca-bundle.crtją ścieżką po „CAfile:” w komunikacie o błędzie.
Możesz również utworzyć dowiązanie symboliczne, ln -sjeśli nie chcesz go kopiować za każdym razem, gdy go aktualizujesz.
starbeamrainbowlabs
4
Miał ten sam problem z rescuetimeaplikacją na Fedorze 25. sudo ln -s /etc/pki/tls/certs/ca-bundle.crt /etc/pki/tls/certs/ca-certificates.crtrozwiązał problem. ( CURL_CA_BUNDLEenv var nie działał)
GabLeRoux
Na moim ubuntu to naprawić problem: sudo ln -s /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.pem. Właśnie dostawałem, The repository ... does not have a Release fileco było spowodowane brakującym certyfikatem ( Could not load certificates from ...).
Dziękujemy za udostępnienie metody, która nie wymaga ode mnie ręcznego usuwania plików systemowych, ale zapewnia bezpieczeństwo korzystania z certyfikatów!
Stephen Johnson,
Dziękuję Ci. To rozwiązało mój podobny problem z Pyenv i Curl. Korzystałem z Ubuntu 14.04 i miałem już zainstalowane ca-certyfikaty.
davidA
To podejście działa również z xonsh (dodaj $CURL_CA_BUNDLE = "/etc/ssl/certs/ca-certificates.crt"do .xonshrc).
m00am
Na wszelki wypadek: Jedna liniowa wersja tego:CURL_CA_BUNDLE=/path/to/bundle.crt curl http://example.com
najlepsza odpowiedź, to działało dla mnie na Linux Mint 17
Santiago
Na Mac, to działało z podążając~/.curlrccacert=/etc/openssl/cert.pem
amirathi
21
Najszybszym sposobem na obejście tego błędu jest dodanie opcji -k gdzieś w żądaniu curl. Ta opcja „umożliwia połączenia z cytowaniami SSL bez certyfikatów”. (od curl --help)
Należy pamiętać, że może to oznaczać, że nie rozmawiasz z punktem końcowym, o którym myślisz, że jest, ponieważ przedstawia on certyfikat niepodpisany przez urząd certyfikacji, któremu ufasz.
Może to obejść błąd, ale powoduje również, że „bezpieczne” połączenie staje się niepewne.
Tim
1
Nie całkiem. O ile mi wiadomo, nie można po prostu ominąć szyfrowania bezpiecznego połączenia, więc nadal jest ono szyfrowane i dochodzi tylko do jednego punktu końcowego. Ktoś mnie poprawi, jeśli się mylę, ale jedyne ryzyko, na jakie ryzykujesz, polega na tym, że możesz paść ofiarą ataku człowieka w środku. Nadal nie jest prawdopodobne ryzyko, jeśli używasz zwijania.
10gistic
18
Tak naprawdę. Opcja „-k” jest skrótem dla „--insecure”. Jeśli masz człowieka w środku, jak myślisz, co on robi z twoimi danymi? Ostrzeżenie spoilera: odszyfrowuje go, kradnie, a może modyfikuje i wstrzykuje z powrotem do niepewnego strumienia. Prosto ze strony podręcznika: „-k, --insecure (SSL) Ta opcja wyraźnie pozwala programowi curl na wykonywanie„ niezabezpieczonych ”połączeń i transferów SSL. Wszystkie połączenia SSL są próbowane w celu zabezpieczenia za pomocą domyślnie zainstalowanego pakietu certyfikatów CA. Powoduje to, że wszystkie połączenia uważane za „niepewne” kończą się niepowodzeniem, chyba że użyto opcji -k, --insecure.
Tim
2
Jeśli potrzebujesz protokołu SSL, potrzebujesz prywatności i weryfikacji - -kflaga oznacza, że tracisz weryfikację. W zależności od potrzeb może to być do zaakceptowania. MITM to nietrywialne ataki, jeśli założysz, że Twoja sieć i serwer, z którym się komunikujesz, są zabezpieczone przed intruzami (czy możesz to założyć?). Ryzyko wzrasta w zależności od rodzaju danych (kod źródłowy i certyfikaty są bardziej ryzykowne niż obrazy). Możesz zweryfikować integralność danych po przesłaniu (sumy kontrolne itp.), Ale teraz przenosisz zaufanie na ten kanał sumy kontrolnej. W końcu -kdaje ci trochę więcej pracy.
Mark Fox
Czy to oznacza, że jeśli używam certyfikatu z podpisem własnym. Powinienem użyć opcji -k. Czy weryfikacja certyfikatu z podpisem własnym może nie być możliwa?
Linus,
15
@roens jest poprawny. Dotyczy to wszystkich użytkowników Anaconda , z błędem poniżej curl: (77) error setting certificate verify locations:
CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
Obejściem tego problemu jest użycie domyślnego zwijania się systemu i unikanie bałaganu w przygotowanej PATHzmiennej Anaconda . Możesz albo
Zmień nazwę pliku binarnego curl Anaconda :) mv /path/to/anaconda/bin/curl /path/to/anaconda/bin/curl_anaconda
Dobre znalezisko, nie zdawałem sobie sprawy, że Anaconda kradnie mój priorytet. To zadziałało, gdy zastąpiłem curlpełną ścieżkę/usr/bin/curl
jxramos
To bardzo pomogło! Dzięki.
Shababb Karim
12
Od $ 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.
W przypadku kodu PHP działającego na XAMPP w systemie Windows stwierdziłem, że muszę edytować plik php.ini, aby uwzględnić poniżej
[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 zmień nazwę na curl-ca-bundle.crt i umieść go pod ścieżką \ xampp (nie mogłem uzyskać curl.capath do pracy) . Odkryłem również, że CAbundle na stronie cURL nie wystarcza dla zdalnej strony, z którą się łączyłem, więc użyłem takiej, która jest wymieniona z prekompilowaną wersją curl dla systemu Windows 7.47.1 na http://winampplugins.co.uk /kędzior/
Obejście, ale pomaga mi po zbyt długim czasie z curl certyfikatów. Dzięki.
K. Gol
4
curl SSLdomyślnie dokonuje weryfikacji certyfikatu, używając „pakietu” plikuCertificate Authority (CA) kluczy publicznych (certyfikatów CA). Domyślny pakiet nazywa się curl-ca-bundle.crt; możesz określić alternatywny plik za pomocą opcji --cacert.
Jeśli ten HTTPSserwer używa certyfikatu podpisanego przez urząd certyfikacji reprezentowany w pakiecie, weryfikacja certyfikatu prawdopodobnie nie powiodła się z powodu problemu z certyfikatem (może wygasnąć lub nazwa może nie zgadzać się z nazwą domeny w adresie URL).
Jeśli chcesz wyłączyć weryfikację certyfikatu przez curl, użyj opcji -k (lub --insecure).
Pomijając fakt, że „zaufanie do źródła” nie ma tutaj znaczenia, ponieważ bez prawidłowej weryfikacji certyfikatu wobec urzędu certyfikacji nie masz pojęcia, kim jest „źródło”.
Jeff Allen
4
Wygląda na to, że twój curl wskazuje na nieistniejący plik z certyfikatami CA lub podobnymi.
Po prostu utwórz foldery, których brakuje w twoim systemie.
/ etc / pki / tls / certs /
i utwórz plik za pomocą następującego polecenia,
sudo apt-get install ca-certyfikaty
a następnie skopiuj i wklej certyfikat do folderu docelowego, który pojawia się w twoim błędzie. Mój był " with message 'error setting certificate verify locations: CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none' in" upewnij się, że wkleiłeś plik dokładnie w miejscu wskazanym w błędzie. Użyj następującego polecenia, aby skopiować wklej ..
Żadna z najlepszych odpowiedzi nie działała dla mnie, ale tak się stało!
Prachiti Prakash Prabhu
2
which curlZnaczące jest także to, że warto sprawdzać .
Użytkownik na współużytkowanym komputerze, który utrzymuję, otrzymywał ten błąd. Okazało się jednak, że zainstalowali Anacondę ( http://continuum.io ). Robi więc umieścić binarne ścieżkę Anakonda przed normą $PATH, a to przychodzi z własnym curlbinarny, który miał problem ze znalezieniem certyfikatów domyślne, które zostały zainstalowane na tym komputerze Ubuntu.
Polecam sprawdzić, which -a curlaby zobaczyć wszystko, co jest dostępne, i oczywiście zauważyć, który z nich jest na górze.
jxramos
2
Jeśli ktoś nadal ma problemy, spróbuj tego, to zadziałało dla mnie. Usuń pliki z /etc/ssl/certs/katalogu, a następnie ponownie zainstaluj certyfikaty ca:
sudo apt install ca-certificates --reinstall
Zrobiłem to, gdy próbowałem zainstalować Linuxbrew.
Pomogło mi to, ale nie usunąłem plików z mojego komputera. Po prostu uruchomiłem proste polecenie i curl zaczął działać.
Josefhu15
1
Jeśli używasz homebrew na macOS lub linuxbrew w systemie Linux, spróbuj ponownie zainstalować openssli curlwykonując następujące kroki z tej strony .
Ten komunikat o błędzie wskazuje, że curl nie może nawiązać bezpiecznego połączenia za pomocą openssl. Ponowna instalacja openssl powinna rozwiązać problem. Aby tymczasowo skorzystać z niepewnego połączenia dla curl i git w celu pobrania niezbędnych plików, uruchom:
Po godzinach prób. To mnie uratowało. Wreszcie właściwe rozwiązanie dla systemu Macos. Wielkie dzięki! :)
mrateb
1
Mam ten sam problem: buduję obraz dokera w alpejskim stylu i kiedy chcę zawinąć się na stronie mojej organizacji, pojawia się ten błąd. Aby rozwiązać ten problem, muszę uzyskać certyfikat CA mojej firmy, a następnie dodać go do certyfikatu CA mojego obrazu.
Uzyskaj certyfikat CA
Użyj OpenSSL, aby uzyskać certyfikaty związane z witryną:
Uzyskaj ostatni certyfikat (treść między -----BEGIN CERTIFICATE-----a -----END CERTIFICATE----- znaczników w zestawie) i zapisać go do pliku (mycompanyRootCA.crt na przykład)
Zbuduj swój wizerunek
Następnie, gdy zbudujesz obraz dokera z alpejskiego, wykonaj następujące czynności:
FROM alpine
RUN apk add ca-certificates curl
COPY mycompanyRootCA.crt /usr/local/share/ca-certificates/mycompanyRootCA.crt
RUN update-ca-certificates
Błąd jest spowodowany uszkodzonymi lub brakującymi plikami certyfikatów łańcucha SSL w katalogu PKI. Musisz upewnić się, że pliki zawierają cały pakiet, wykonując następujące czynności: W konsoli / terminalu:
mkdir /usr/src/ca-certificates && cd /usr/src/ca-certificates
Poniżej opisz kroki, aby rozwiązać problemy.
1. Dowiedz się, że plik istnieje na zdefiniowanym adresie URL.
2. Jeśli nie, pobierz plik z adresu URL. https://curl.haxx.se/ca/cacert.pem
3. Skopiuj i zainfekuj plik do zdefiniowanej ścieżki w pliku php.ini.
4. Uruchom ponownie usługę Apache.
Miałem ten problem i okazało się, że moja wersja CURL nie mogła parsować certyfikatów zakodowanych w DER (i nie zwracałam też uwagi na opcję --cert). Kiedy przekonwertowałem certyfikat do formatu PEM, zadziałało.
W moim przypadku /etc/ssl/certs/ca-certificates.crtbrak pliku. Jak się okazało, /etc/ssl/certspodczas tworzenia obrazu dokera usunąłem zawartość pliku Docker. Po dostosowaniu skryptów powłoki / poleceń bash uruchamianych z Dockerfile - curl działa teraz idealnie z nowego kontenera.
ca-certificates
zainstalowany, ale błąd nadal występował. Problem polegał na tym, że/etc/ssl/certs/ca-certificates.crt
zamiast nich znajdowały się moje certyfikaty/etc/pki/tls/certs/ca-bundle.crt
, musiałem więc ustawić zmienną środowiskowąCURL_CA_BUNDLE
na właściwą ścieżkę.export CURL_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt
.Odpowiedzi:
Ten błąd dotyczy brakującego pakietu :
ca-certificates
. Zainstaluj to.W Ubuntu Linux (i podobnej dystrybucji):
W CygWin przez Apt-Cyg
W Arch Linux (Raspberry Pi)
Dokumentacja mówi:
Jak widać na: Debian - Szczegóły pakietu ca-certyfikatów w squeeze
źródło
pacman -S ca-certificates-utils
. Zrobiłem.sudo apt install --reinstall ca-certificates
przeinstalowałem pakiet i usunąłem błędy, które widziałemMiałem również zainstalowaną najnowszą wersję certyfikatów ca, ale wciąż pojawiał się błąd:
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ż był na ścieżce/etc/ssl/certs/ca-certificates.crt
.Skopiuj mój certyfikat do oczekiwanego miejsca docelowego, uruchamiając
pracował dla mnie. Będziesz musiał utworzyć foldery dla docelowego miejsca docelowego, jeśli nie istnieją przez uruchomienie
W razie potrzeby zmodyfikuj powyższą komendę, aby nazwa pliku docelowego była zgodna ze ścieżką oczekiwaną przez curl, tj. Zastąp
/etc/pki/tls/certs/ca-bundle.crt
ją ścieżką po „CAfile:” w komunikacie o błędzie.źródło
ln -s
jeśli nie chcesz go kopiować za każdym razem, gdy go aktualizujesz.rescuetime
aplikacją na Fedorze 25.sudo ln -s /etc/pki/tls/certs/ca-bundle.crt /etc/pki/tls/certs/ca-certificates.crt
rozwiązał problem. (CURL_CA_BUNDLE
env var nie działał)sudo ln -s /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.pem
. Właśnie dostawałem,The repository ... does not have a Release file
co było spowodowane brakującym certyfikatem (Could not load certificates from ...
).Włóż to do swojego
.bashrc
(patrz komentarz Roberta)
źródło
$CURL_CA_BUNDLE = "/etc/ssl/certs/ca-certificates.crt"
do.xonshrc
).CURL_CA_BUNDLE=/path/to/bundle.crt curl http://example.com
Utwórz plik
~/.curlrc
o następującej treściźródło
~/.curlrc
cacert=/etc/openssl/cert.pem
Najszybszym sposobem na obejście tego błędu jest dodanie opcji -k gdzieś w żądaniu curl. Ta opcja „umożliwia połączenia z cytowaniami SSL bez certyfikatów”. (od curl --help)
Należy pamiętać, że może to oznaczać, że nie rozmawiasz z punktem końcowym, o którym myślisz, że jest, ponieważ przedstawia on certyfikat niepodpisany przez urząd certyfikacji, któremu ufasz.
Na przykład:
dał mi następującą odpowiedź na błąd:
Dodałem na -k:
i brak komunikatu o błędzie. Jako bonus, teraz mam zainstalowany apt-cyg. I ca-certyfikaty.
źródło
-k
flaga oznacza, że tracisz weryfikację. W zależności od potrzeb może to być do zaakceptowania. MITM to nietrywialne ataki, jeśli założysz, że Twoja sieć i serwer, z którym się komunikujesz, są zabezpieczone przed intruzami (czy możesz to założyć?). Ryzyko wzrasta w zależności od rodzaju danych (kod źródłowy i certyfikaty są bardziej ryzykowne niż obrazy). Możesz zweryfikować integralność danych po przesłaniu (sumy kontrolne itp.), Ale teraz przenosisz zaufanie na ten kanał sumy kontrolnej. W końcu-k
daje ci trochę więcej pracy.@roens jest poprawny. Dotyczy to wszystkich użytkowników Anaconda , z błędem poniżej
curl: (77) error setting certificate verify locations: CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none
Obejściem tego problemu jest użycie domyślnego zwijania się systemu i unikanie bałaganu w przygotowanej
PATH
zmiennej Anaconda . Możesz alboZmień nazwę pliku binarnego curl Anaconda :)
mv /path/to/anaconda/bin/curl /path/to/anaconda/bin/curl_anaconda
LUB usuń loki Anaconda
conda remove curl
$ which curl /usr/bin/curl
[0] Anaconda Ubuntu curl Github problem https://github.com/conda/conda-recipes/issues/352
źródło
curl
pełną ścieżkę/usr/bin/curl
Od
$ man curl
:źródło
W przypadku kodu PHP działającego na XAMPP w systemie Windows stwierdziłem, że muszę edytować plik php.ini, aby uwzględnić poniżej
a następnie skopiuj do pliku https://curl.haxx.se/ca/cacert.pem i zmień nazwę na curl-ca-bundle.crt i umieść go pod ścieżką \ xampp (nie mogłem uzyskać curl.capath do pracy) . Odkryłem również, że CAbundle na stronie cURL nie wystarcza dla zdalnej strony, z którą się łączyłem, więc użyłem takiej, która jest wymieniona z prekompilowaną wersją curl dla systemu Windows 7.47.1 na http://winampplugins.co.uk /kędzior/
źródło
Miałem dokładnie ten sam problem. Jak się okazuje, mój
/etc/ssl/certs/ca-certificates.crt
plik był zniekształcony. Ostatni wpis pokazywał coś takiego:Po dodaniu nowego wiersza
-----END CERTIFICATE-----
curl był w stanie obsłużyć plik certyfikatów.To było bardzo denerwujące, ponieważ moje
update-ca-certificates
polecenie nie dało mi żadnego ostrzeżenia.Może to być problem związany z zawijaniem się w zależności od wersji, więc oto moja wersja, dla kompletności:
źródło
To zadziałało dla mnie
następnie przejdź do folderu certyfikatów na
następnie skopiuj plik ca-certyfikaty.crt do
/etc/pki/tls/certs
jeśli nie ma folderu tls / certs: utwórz go i zmień uprawnienia za pomocą chmod 777 -R folderNAME
źródło
Inną alternatywą rozwiązania tego problemu jest wyłączenie sprawdzania poprawności certyfikatu:
źródło
curl
SSL
domyślnie dokonuje weryfikacji certyfikatu, używając „pakietu” plikuCertificate Authority (CA)
kluczy publicznych (certyfikatów CA). Domyślny pakiet nazywa się curl-ca-bundle.crt; możesz określić alternatywny plik za pomocą opcji --cacert.Jeśli ten
HTTPS
serwer używa certyfikatu podpisanego przez urząd certyfikacji reprezentowany w pakiecie, weryfikacja certyfikatu prawdopodobnie nie powiodła się z powodu problemu z certyfikatem (może wygasnąć lub nazwa może nie zgadzać się z nazwą domeny w adresie URL).Jeśli chcesz wyłączyć weryfikację certyfikatu przez curl, użyj opcji -k (lub
--insecure
).na przykład
źródło
Wygląda na to, że twój curl wskazuje na nieistniejący plik z certyfikatami CA lub podobnymi.
Podstawowe informacje na temat certyfikatów CA z curl można znaleźć na stronie : https://curl.haxx.se/docs/sslcerts.html
źródło
Po prostu utwórz foldery, których brakuje w twoim systemie.
i utwórz plik za pomocą następującego polecenia,
a następnie skopiuj i wklej certyfikat do folderu docelowego, który pojawia się w twoim błędzie. Mój był "
with message 'error setting certificate verify locations: CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none' in
" upewnij się, że wkleiłeś plik dokładnie w miejscu wskazanym w błędzie. Użyj następującego polecenia, aby skopiować wklej ..Naprawiony.
źródło
which curl
Znaczące jest także to, że warto sprawdzać .Użytkownik na współużytkowanym komputerze, który utrzymuję, otrzymywał ten błąd. Okazało się jednak, że zainstalowali Anacondę ( http://continuum.io ). Robi więc umieścić binarne ścieżkę Anakonda przed normą
$PATH
, a to przychodzi z własnymcurl
binarny, który miał problem ze znalezieniem certyfikatów domyślne, które zostały zainstalowane na tym komputerze Ubuntu.źródło
which -a curl
aby zobaczyć wszystko, co jest dostępne, i oczywiście zauważyć, który z nich jest na górze.Jeśli ktoś nadal ma problemy, spróbuj tego, to zadziałało dla mnie. Usuń pliki z
/etc/ssl/certs/
katalogu, a następnie ponownie zainstaluj certyfikaty ca:Zrobiłem to, gdy próbowałem zainstalować Linuxbrew.
źródło
Jeśli używasz homebrew na macOS lub linuxbrew w systemie Linux, spróbuj ponownie zainstalować
openssl
icurl
wykonując następujące kroki z tej strony .Może być konieczne rozpoczęcie nowej sesji powłoki, aby zweryfikować wynik
Jeśli pokazuje on następujące dane wyjściowe, problem powinien zostać rozwiązany!
Bibliografia:
źródło
Mam ten sam problem: buduję obraz dokera w alpejskim stylu i kiedy chcę zawinąć się na stronie mojej organizacji, pojawia się ten błąd. Aby rozwiązać ten problem, muszę uzyskać certyfikat CA mojej firmy, a następnie dodać go do certyfikatu CA mojego obrazu.
Uzyskaj certyfikat CA
Użyj OpenSSL, aby uzyskać certyfikaty związane z witryną:
Spowoduje to wyświetlenie czegoś takiego:
Uzyskaj ostatni certyfikat (treść między
-----BEGIN CERTIFICATE-----
a-----END CERTIFICATE-----
znaczników w zestawie) i zapisać go do pliku (mycompanyRootCA.crt na przykład)Zbuduj swój wizerunek
Następnie, gdy zbudujesz obraz dokera z alpejskiego, wykonaj następujące czynności:
Twój obraz będzie teraz działał poprawnie! \ o /
źródło
Po prostu znajdź to rozwiązanie działa dla mnie idealnie.
Znalazłem to rozwiązanie stąd
źródło
Błąd jest spowodowany uszkodzonymi lub brakującymi plikami certyfikatów łańcucha SSL w katalogu PKI. Musisz upewnić się, że pliki zawierają cały pakiet, wykonując następujące czynności: W konsoli / terminalu:
Wejdź na tę stronę: https://rpmfind.net/linux/rpm2html/search.php?query=ca-certificates , zdobądź certyfikat ca dla SO. Skopiuj adres URL pobierania i wklej do adresu URL: wget twoja_url_donwload_ca-ceritificated.rpm teraz, zainstaluj yout rpm:
teraz uruchom ponownie usługę: mój przykład to polecenie:
źródło
Uruchom następujące polecenie w git bash, które działa dobrze dla mnie
źródło
To naprawiło dla mnie:
źródło
Uważam, że ta poprawka jest łatwa i bezpieczna. Polega tylko na zmianie ścieżki dwóch wartości w
php.ini
pliku. Postępuj zgodnie z instrukcjami tutaj: https://ourcodeworld.com/articles/read/196/xampp-wampp-php-ssl-certificate-error-unable-to-get-local-issuer-certificateźródło
Poniżej opisz kroki, aby rozwiązać problemy.
1. Dowiedz się, że plik istnieje na zdefiniowanym adresie URL.
2. Jeśli nie, pobierz plik z adresu URL. https://curl.haxx.se/ca/cacert.pem
3. Skopiuj i zainfekuj plik do zdefiniowanej ścieżki w pliku php.ini.
4. Uruchom ponownie usługę Apache.
źródło
Miałem ten problem i okazało się, że moja wersja CURL nie mogła parsować certyfikatów zakodowanych w DER (i nie zwracałam też uwagi na opcję --cert). Kiedy przekonwertowałem certyfikat do formatu PEM, zadziałało.
źródło
W moim przypadku
/etc/ssl/certs/ca-certificates.crt
brak pliku. Jak się okazało,/etc/ssl/certs
podczas tworzenia obrazu dokera usunąłem zawartość pliku Docker. Po dostosowaniu skryptów powłoki / poleceń bash uruchamianych z Dockerfile - curl działa teraz idealnie z nowego kontenera.źródło