Cek CURL Response Pada Terminal
Berdasar dari gambar diatas ceritanya bermula saat saya melakukan aksess api aplikasi yang sudah biasa apinya digunakan untuk integrasi dengan aplikasi lain. Namun apa daya terjadi error curl: (60) SSL certificate problem: unable to get local issuer certificate. Disitu saya merasa sedih, hehehe.
Usut punya usut menurut saya error ini bisa karena ssl pada dns yang aktif sehingg meminta file verifikasi untuk diizinkan mengakses apinya. Namun ternya error tersebut bisa terjadi dengan beberapa cara. Untuk kejadian yang sedang saya alami saya sudah menambahkan pada php curl script
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
permintaan agar mengabaikan saja verifikasi ssl nya namun ternyata penambahan script tidak berefek apapun. Padahal seharusnya paling tidak script tersebut bisa mengabaikan verifikasi ssl yang diminta. Kemudian saya menambahkan script ke php curl
curl_easy_setopt(curl, CURLOPT_CAINFO, "sertifikat/cacert.pem");
dan merubah
CURLOPT_SSL_VERIFYPEER, false); menjadi CURLOPT_SSL_VERIFYPEER, true);
namun apa daya ternyata masih mengalami error. karena penasaran saya tes cengan culr CLI
dengan code
curl --cacert /var/www/appq/sertifikat/cacert.pem --location --request POST 'https://domainame.com/url/api' --header 'Cookie: app_session=73s3qsgSasn' --form 'key="xxx" '
dan ternyata api berhasil diakses, yang artinya api berjalan normal. lalu apa yang sebenarnya terjadi? disitu saya merasa aneh.
saya mempertanyakan sepertinya server tidak berjalan dengan baik. Pertanyaan itu didapat dari beberapa kejadian yang mendasari.
1. script php curl bisa dijalankan dengan baik, bisa melakukan akses api, bisa menampilkan hasil respon server. sehingga kesimpulan script jalankan di localhost / di komputer normal.
2. script php curl di uji di server lain untuk melakukan akses api dan mendapatkan hasil yang sama. api bisa diakses dan menampilkan hasil respose server dengan baik.
sehingga jatuh pada kesimpulan server yang sedang saya gunakan untuk membuat aplikasi baru ini sedang tidak baik, bisa jadi ada settingan yang belum jalan. Sekedar info ketika itu saya menggunakan server centos 7 dan 8 (server yang mengalami masalh akses api ).
Terus apa solusi selanjutya?
Dalam kejadian ini saya melakukan cek status apakah SELinux membiarkan webserver terhubung ke jaringan pada server dengan perintah terminal
# getsebool httpd_can_network_connect
hasilnya ternyata : httpd_can_network_connect off
Settingan ini yang menjadikan aplikasi gagal melakukan akses ke api yang diinginkan. Agar aplikasi bisa akses server kemudain saya aktifkan menjadi ON dengan perintah berikut :
# setsebool -P httpd_can_network_connect on
Setelah set on ternyata semua code php curl yang saya buat tadi berjalan normal dan menampilkan respons api yang diberikan. <solved>