Błąd certyfikatu PHP-SSL: nie można uzyskać lokalnego certyfikatu wystawcy
Uruchamiam PHP w wersji 5.6.3 jako część XAMPP na Windows 7.
Kiedy próbuję użyć API Mandrill, dostaję następujący błąd:
Uncaught exception 'Mandrill_HttpError' with message 'API call to messages/send-template failed: SSL certificate problem: unable to get local issuer certificate'
Próbowałem już wszystkiego, co przeczytałem na StackOverflow, łącznie z dodaniem do php następujących elementów.plik ini:
curl.cainfo = "C:\xampp\php\cacert.pem"
I oczywiście pobrane do to miejsce cacert.plik pem z http://curl.haxx.se/docs/caextract.html
Ale po tym wszystkim, zrestartowałem XAMPP i serwer Apache, ale nadal otrzymuję ten sam błąd.
Naprawdę Nie wiem, czego jeszcze spróbować. Czy ktoś może doradzić, czego jeszcze mogę spróbować?11 answers
W końcu to działa!
Połóż to gdzieś. W moim przypadku był to katalog
c:\wamp\
(Jeśli używasz Wamp 64 bit to jest toc:\wamp64\
).Włącz
mod_ssl
w Apache iphp_openssl.dll
wphp.ini
(odkomentuj je usuwając;
na początku). Ale uważaj, mój problem polegał na tym, że miałem dwaphp.ini
pliki i muszę to zrobić w obu. Jednym z nich jest ten, który dostajesz z paska zadań WAMP ikona, a inna jest, w moim przypadku, wC:\wamp\bin\php\php5.5.12\
-
Dodaj te linie do cert w obu plikach
php.ini
:curl.cainfo="C:/wamp/cacert.pem" openssl.cafile="C:/wamp/cacert.pem"
Uruchom ponownie usługi Wamp.
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-06-22 09:02:30
Miałem ten sam problem w Mandrill.plik php po linii 65 gdzie jest napisane $this - > ch = curl_init ();Zastrzeżenie: ten kod sprawia, że serwer nie jest bezpieczny.
Dodaj następujące dwie linijki:
curl_setopt($this->ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($this->ch, CURLOPT_SSL_VERIFYPEER, 0);
To rozwiązało mój problem, a także wysłało e-mail za pomocą localhost, ale sugeruję, aby nie używać go w wersji live live. Na Twoim aktywnym serwerze kod powinien działać bez tego kodu.
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-03-15 08:55:32
Dzięki @ Mladen Janjetovic,
Twoja sugestia zadziałała u mnie na Macu z zainstalowanym ampps.
Kopiowane: http://curl.haxx.se/ca/cacert.pem
Na: /Applications/AMPPS/extra/etc/openssl/certs/cacert.pem
I zaktualizowany php.ini
z tą ścieżką i ponownie uruchomiony Apache:
[curl]
; A default value for the CURLOPT_CAINFO option. This is required to be an
; absolute path.
curl.cainfo="/Applications/AMPPS/extra/etc/openssl/certs/cacert.pem"
openssl.cafile="/Applications/AMPPS/extra/etc/openssl/certs/cacert.pem"
I zastosowaĹ 'to samo ustawienie w instalacji Windows AMPPS i dziaĹ' aĹ ' o w nim doskonale.
[curl]
; A default value for the CURLOPT_CAINFO option. This is required to be an
; absolute path.
curl.cainfo="C:/Ampps/php/extras/ssl/cacert.pem"
openssl.cafile="C:/Ampps/php/extras/ssl/cacert.pem"
: To samo dla wamp.
[curl]
; A default value for the CURLOPT_CAINFO option. This is required to be an
; absolute path.
curl.cainfo="C:/wamp/bin/php/php5.6.16/extras/ssl/cacert.pem"
openssl.cafile="C:/wamp/bin/php/php5.6.16/extras/ssl/cacert.pem"
Jeśli szukasz nowego certyfikatu SSL korzystanie z SAN dla localhost, kroki na ten post pracował dla mnie na Centos 7 / Vagrant / Chrome Browser
.
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-08-06 23:30:39
Po wyświetleniu http://curl.haxx.se/docs/caextract.html strona, zauważysz dużymi literami sekcję o nazwie:
RSA-1024 usunięty
Przeczytaj go, a następnie pobierz wersję certyfikatów, która zawiera certyfikaty' RSA-1024'. https://github.com/bagder/ca-bundle/blob/e9175fec5d0c4d42de24ed6d84a06d504d5e5a09/ca-bundle.crt
Te będą działać z Mandrillem.
Wyłączenie SSL to zły pomysł.
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-09 21:36:15
Powyższe kroki, choć pomocne, nie działały dla mnie na Windows 8. Nie znam relacji, ale poniższe kroki zadziałały. Zasadniczo zmiana w cacercie.plik pem. Mam nadzieję, że to komuś pomoże.
- Pobierz cacert.plik pem stąd: http://curl.haxx.se/docs/caextract.html
- Zapisz plik w folderze instalacyjnym PHP. (np.: jeśli używasz xampp-zapisz go w c:\Installation_Dir\xampp\php\cacert.pem).
- Otwórz swoje php.plik ini i dodaj te linie: Curl.cainfo="C:\Installation_Dir\xampp\php\cacert.pem" openssl./ align="left" / C:\Installation_Dir\xampp\php\cacert.pem "
- Uruchom ponownie serwer Apache i to powinno go naprawić (wystarczy zatrzymać i uruchomić usługi w razie potrzeby).
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-25 09:55:05
Znalazłem nowe rozwiązanie bez wymaganej certyfikacji, aby wywołać curl tylko dodać kod dwuliniowy.
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 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
2016-10-20 06:33:41
Opracowanie powyższych odpowiedzi na temat wdrażania serwera.
$hostname = gethostname();
if($hostname=="mydevpc")
{
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
}
Powinno działać w środowisku programistycznym bez narażania serwera po wdrożeniu.
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-08-08 02:29:23
Jeśli nie masz dostępu do php.ini, dodanie tego kodu (po linii $ch = curl_init();
) działa dla mnie:
$certificate_location = "C:\Program Files (x86)\EasyPHP-Devserver-16.1\ca-bundle.crt"; // modify this line accordingly (may need to be absolute)
curl_setopt($ch, CURLOPT_CAINFO, $certificate_location);
curl_setopt($ch, CURLOPT_CAPATH, $certificate_location);
Następnie wystarczy pobrać ca-bundle.crt i zapisz go w miejscu określonym w $certificate_location
.
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-07-25 19:54:13
Miałem ten sam problem podczas budowania aplikacji w AppVeyor.
- Pobierz https://curl.haxx.se/ca/cacert.pem do
c:\php
- włącz openssl
echo extension=php_openssl.dll >> c:\php\php.ini
- Zlokalizuj certyfikat
echo curl.cainfo=c:\php\cacert.pem >> c:\php\php.ini
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-11 12:03:53
Jeśli żadne z powyższych rozwiązań nie działa, spróbuj zaktualizować swoją instalację XAMPP do nowszej wersji.
Uruchamiałem XAMPP z php 5.5.11, ten sam kod nie działał, zaktualizowałem do XAMPP z php 5.6.28 i powyższe rozwiązania działały.
DODATKOWO tylko aktualizacja PHP też nie zadziałała wydaje się kombinacją ustawień apache i php w tej wersji XAMPP.
Mam nadzieję, że to komuś pomoże.
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-06 18:05:00
Jeśli wiesz, że sam xampp dostarcza już źródło, zobacz i zrób to tutorial
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-07-11 17:29:42