(php) בעיית ssl בעת בקשה משרת hebcal באמצעות curl מהמחשב הלוקאלי
-
יש לי את הקוד הזה (שבודק אם עכשיו חג יהודי).
// Set the URL of the Hebrew Calendar API $url = 'https://www.hebcal.com/hebcal/?v=1&cfg=json&maj=on&min=on&mod=on&nx=on&year=now&month=x&ss=on&mf=on&c=on&geo=geoname&geonameid=3448439&m=50&s=on'; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_CAINFO, 'C:\xampp\php\curl\cacert.pem'); $response = curl_exec($curl); $error = curl_error($curl); curl_close($curl); if ($error) { echo "cURL Error: " . $error; } else { $data = json_decode($response, true); if ($data['items'][0]['category'] == 'holiday' || $data['items'][0]['category'] == 'candles') { // Do not send em ails echo 'Today is a holiday or Shabbat. Emails will not be sent.'; } else { // Send emails echo 'Emails will be sent.'; } }
והוא מחזיר שגיאה:
cURL Error: SSL certificate problem: unable to get local issuer certificate
בשורת הקוד
curl_setopt($curl, CURLOPT_CAINFO, 'C:\xampp\php\curl\cacert.pem');
הכנסתי את הקובץ שנמצא כאן.נ.ב. הייתי מעוניין בפתרון שלא דורש את הלינק של תעודת האבטחה, כיון שהכתובת לא תואמת בשרת הלוקאלי ובשרת הפרודקשיין.
תודה.
-
@chagold כתב ב(php) בעיית ssl בעת בקשה משרת hebcal באמצעות curl מהמחשב הלוקאלי:
curl_setopt($curl, CURLOPT_CAINFO, 'C:\xampp\php\curl\cacert.pem');
מי אמר לך לשים כזו שורה משונה? חשבת שבכל curl מסכן אמורים להוסיף תעודות אבטחה?
אם יש בעיה של תעודת אבטחה זה בגלל נטפרי ואז אתה צריך תעודת אבטחה של נטפרי, אולם רק בשרת הלוקאלי.
הכי טוב שתבדוק את השרת אם הוא לוקלי או לא, ואם הוא לוקלי תבטל את האבטחה או תוסיף את התעודה של נטפרי:$curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); if(gethostname() == 'DESKTOP-586ODEM') { //תשנה לשם המחשב שלך המקומי //אופציה א curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); //אופציה ב curl_setopt($curl, CURLOPT_CAINFO, 'C:\ProgramData\NetFree\CA\netfree-ca-bundle-curl.crt'); }
-