Saya menggunakan XAMPP untuk pengembangan. Baru-baru ini saya memutakhirkan instalasi xampp dari versi lama ke 1.7.3.
Sekarang ketika saya mengeriting situs yang diaktifkan HTTPS saya mendapatkan pengecualian berikut
Kesalahan fatal: Pengecualian tanpa permintaan 'RequestCore_Exception' dengan pesan 'cURL resource: Resource id # 55; kesalahan CURL: masalah sertifikat SSL, verifikasi bahwa sertifikat CA OK. Detail: kesalahan: 14090086: Rutinitas SSL: SSL3_GET_SERVER_CERTIFICATE: verifikasi sertifikat gagal (60) '
Semua orang menyarankan menggunakan beberapa opsi ikal tertentu dari kode PHP untuk memperbaiki masalah ini. Saya pikir ini seharusnya tidak menjadi jalannya. Karena saya tidak punya masalah dengan versi lama XAMPP saya dan terjadi hanya setelah menginstal versi baru.
Saya perlu bantuan untuk mencari tahu perubahan pengaturan apa dalam instalasi PHP saya, Apache dll dapat memperbaiki masalah ini.
CURLOPT_SSL_VERIFYPEER
-> false). Anda dapat menambahkan sertifikat CA dari situs yang Anda coba lakukan SSL, atau Anda menonaktifkan verifikasi CA. Hanya itulah dua opsi yang tersedia.CURLOPT_SSL_VERIFYPEER
untukfalse
mengalahkan tujuan menggunakan SSL.Ini masalah yang cukup umum di Windows. Anda perlu hanya untuk set
cacert.pem
kecurl.cainfo
.Karena PHP 5.3.7 dapat Anda lakukan:
php.ini
- tambahkan curl.cainfo = "PATH_TO / cacert.pem"Jika tidak, Anda harus melakukan yang berikut untuk setiap sumber daya CURL:
sumber
2.
, Anda harus menambahkan variabel ke duaphp.ini
file terpisah . Lihat stackoverflow.com/a/25706713/1101095Peringatan: ini dapat menimbulkan masalah keamanan yang dirancang untuk dilindungi oleh SSL, menjadikan seluruh basis kode Anda tidak aman. Itu bertentangan dengan setiap praktik yang disarankan.
Tetapi perbaikan yang sangat sederhana yang berhasil bagi saya adalah menelepon:
sebelum menelepon:
dalam file php.
Saya percaya ini menonaktifkan semua verifikasi sertifikat SSL.
sumber
Sumber: http://ademar.name/blog/2006/04/curl-ssl-certificate-problem-v.html
untuk Semua Info Kredit di atas Pergi ke: http://ademar.name/blog/2006/04/curl-ssl-certificate-problem-v.html
sumber
Solusi di atas sangat bagus, tetapi jika Anda menggunakan WampServer Anda mungkin menemukan pengaturan
curl.cainfo
variabel dalamphp.ini
tidak berfungsi.Saya akhirnya menemukan WampServer memiliki dua
php.ini
file:Yang pertama tampaknya digunakan untuk ketika file PHP dipanggil melalui browser web, sedangkan yang kedua digunakan ketika perintah dipanggil melalui baris perintah atau
shell_exec()
.TL; DR
Jika menggunakan WampServer, Anda harus menambahkan
curl.cainfo
baris ke keduaphp.ini
file.sumber
Untuk cinta semua yang suci ...
Dalam kasus saya, saya harus mengatur
openssl.cafile
variabel konfigurasi PHP ke jalur file PEM.Saya percaya sangat benar bahwa ada banyak sistem di mana pengaturan
curl.cainfo
dalam konfigurasi PHP adalah persis apa yang dibutuhkan, tetapi di lingkungan saya bekerja dengan, yang merupakan eboraas / laravel wadah docker , yang menggunakan Debian 8 (jessie) dan PHP 5,6, pengaturan variabel itu tidak melakukan trik.Saya perhatikan bahwa output dari
php -i
tidak menyebutkan apa pun tentang pengaturan konfigurasi tertentu, tetapi memang memiliki beberapa baris tentangopenssl
. Ada keduanyaopenssl.capath
danopenssl.cafile
opsi, tetapi hanya mengatur yang kedua ikal diizinkan melalui PHP untuk akhirnya baik-baik saja dengan URL HTTPS.sumber
Terkadang jika aplikasi yang Anda coba hubungi memiliki sertifikat yang ditandatangani sendiri, cacert.pem normal dari http://curl.haxx.se/ca/cacert.pem tidak menyelesaikan masalah.
Jika Anda yakin dengan url titik akhir layanan, tekan melalui browser, simpan sertifikat secara manual dalam format "X 509 sertifikat dengan rantai (PEM)". Arahkan file sertifikat ini dengan
sumber
Saya memiliki kesalahan yang sama pada linux AMI amazon.
Saya Dipecahkan dengan pengaturan curl.cainfo di /etc/php.d/curl.ini
https://gist.github.com/reinaldomendes/97fb2ce8a606ec813c4b
Penambahan Oktober 2018
Di Amazon Linux v1 edit file ini
Untuk menambahkan baris ini
sumber
Saat mengatur opsi ikal untuk CURLOPT_CAINFO harap ingat untuk menggunakan tanda kutip tunggal, menggunakan tanda kutip ganda hanya akan menyebabkan kesalahan lain. Jadi pilihan Anda akan terlihat seperti:
Selain itu, dalam pengaturan file php.ini Anda harus ditulis sebagai: (perhatikan tanda kutip ganda saya)
Saya meletakkannya langsung di bawah garis yang mengatakan ini:
extension=php_curl.dll
(Untuk tujuan pengorganisasian saja, Anda bisa meletakkannya di mana saja di dalam Anda
php.ini
, saya hanya meletakkannya dekat dengan referensi curl lain, jadi ketika saya mencari menggunakan curl kata kunci, saya dapat menemukan kedua referensi curl di satu area.)sumber
Saya berakhir di sini ketika mencoba untuk mendapatkan GuzzleHttp (php + apache di Mac) untuk mendapatkan halaman dari www.googleapis.com.
Inilah solusi terakhir saya jika itu membantu siapa pun.
Lihatlah rantai sertifikat untuk domain apa pun yang memberi Anda kesalahan ini. Bagi saya itu googleapis.com
Anda akan mendapatkan sesuatu seperti ini:
Catatan: Saya menangkap ini setelah saya memperbaiki masalah ini, untuk output rantai Anda mungkin terlihat berbeda.
Maka Anda perlu melihat sertifikat yang diizinkan dalam php. Jalankan phpinfo () di sebuah halaman.
Kemudian cari file sertifikat yang diambil dari output halaman:
Ini adalah file yang harus Anda perbaiki dengan menambahkan sertifikat yang benar ke dalamnya.
Anda pada dasarnya perlu menambahkan "tanda tangan" sertifikat yang benar ke akhir file ini.
Anda dapat menemukannya di sini: Anda mungkin perlu mencari / mencari orang lain di rantai jika Anda membutuhkannya.
Mereka terlihat seperti ini:
( Catatan: Ini adalah gambar sehingga orang tidak akan hanya menyalin / menempelkan sertifikat dari stackoverflow )
Setelah sertifikat yang tepat ada di file ini, restart apache dan uji.
sumber
Anda dapat mencoba menginstal ulang
ca-certificates
paket, atau secara eksplisit mengizinkan sertifikat yang dimaksud seperti dijelaskan di sini .sumber
Solusinya sangat sederhana! Letakkan baris ini sebelumnya
curl_exec
:Bagi saya itu berhasil.
sumber