Menambahkan sertifikat SSL untuk cURL di PHP
Sejak PHP versi 5.6 autentikasi SSL terhadap akses cURL (CURLOPT_SSL_VERIFYPEER
) default menjadi TRUE
. Hal ini mengakibatkan ketika menggunakan fungsi file_get_contents()
selalu melakukan validasi sertifikat SSL terhadap URL tujuan yang menggunakan protokol SSL. Meskipun URL tujuan telah terinstall sertifikat SSL yang valid, namun cURL tidak dapat membuktikan validitas SSL jika belum memiliki dokumen pembanding sendiri (CA certs list).
Hari ini kebetulan saya juga mengalami masalah yang sama, ketika memasang webuzo di server yang baru. Tidak lama setelah konfigurasi telah selesai dilakukan saya baru sadar kalau beberapa fungsionalitas website tidak bekerja seperti biasanya. Setelah memeriksa berkas log
saya mendapati pesan warning sebagai berikut:
PHP Warning: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /home/user/public_html/script.php on line 1 PHP Warning: file_get_contents(): Failed to enable crypto in/home/user/public_html/script.php on line 1 PHP Warning: file_get_contents(https://domain.com/index.html): failed to open stream: operation failed in/home/user/public_html/script.php on line 1