Powered by Drupal, an open source content management system

โฆษณาโดย Google

ssl certificates path file

กำหนดพาธของ ssl certificates ให้ curl

กำลังหัดเขียน facebook application เล่นๆ ก็ลองเอาโค้ดตัวอย่างที่มีให้มาลองแต่แล้วพอทดสอบแล้วเจอกับ error แบบนี้

Fatal error: Uncaught CurlException: 60: error setting certificate verify locations: CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath:
none thrown in /var/www/vhosts/iporsut.com/httpdocs/tkliwapp/facebook-php-sdk/src/facebook.php on line 511

นั่นคือไม่สามารถเข้าถึงไฟล์ /etc/pki/tls/certs/ca-bundle.crt ได้ พอลองเช็คดูแล้วไม่มีไฟล์ ca-bundle.crt อยู่ตามพาธนี้ ก็เลยลองหาด้วย google ดูก็เห็นว่ามันอยู่ในอีกพาธนึงคือ /usr/share/ssl/certs/ca-bundle.crt

ก็ลองหาวิธีกำหนดว่าจะทำยังไงให้ curl มันไปอ่านไฟล์ ca-bundle.crt ตามพาธที่เราต้องการ ก็ไปเจอว่าต้องกำหนดค่าให้กับ option ตัวนี้

CURLOPT_CAINFO => '/usr/share/ssl/certs/ca-bundle.crt'

แต่ว่าพาธนี้ก็ยังติดเรื่อง permission อีกก็เลยต้อง copy ไปไว้ใน path ของ vhosts/iporsut.com/ แล้วก็กำหนดใหม่เป็น

CURLOPT_CAINFO => '/var/www/vhosts/iporsut.com/httpdocs/tkliwapp/ca-bundle.crt'

ส่วนโค้ดตรงนี้ก็เอาไปเพิ่มใน facebook.php จะมีส่วนที่เป็นการกำหนด default options ให้กับ curl อยู่ ก็เพิ่มเข้าไป เท่านี้ก็ทำงานได้ปกติแล้ว