Я делаю проект в laravel. Я использую plivo api для отправки sms. Для этого я следовал всем шагам, упомянутым в
https://www.plivo.com/docs/getting-started/send-a-single-sms/ .
но когда я попытался запустить свой php-файл, я получаю сообщение об ошибке как
«Неустранимая ошибка: исключить исключение« GuzzleHttp \ Exception \ RequestException »с сообщением« ошибка cURL 60: проблема сертификата SSL: самоподписанный сертификат в цепочке сертификатов »(см. Http://curl.haxx.se/libcurl/c/libcurl-errors. html ) 'в G: \ Xampp \ htdocs \ plivoTrial \ vendor \ guzzlehttp \ guzzle \ src \ Handler \ CurlFactory.php: 187 Трассировка стека: # 0 G: \ Xampp \ htdocs \ plivoTrial \ vendor \ guzzlehttp \ guzzle \ src \ Handler \ CurlFactory.php (150): GuzzleHttp \ Handler \ CurlFactory :: createRejection (объект (GuzzleHttp \ Handler \ EasyHandle), массив) # 1 G: \ Xampp \ htdocs \ plivoTrial \ vendor \ guzzlehttp \ guzzle \ src \ Handler \ CurlFactory.php (103): GuzzleHttp \ Handler \ CurlFactory :: finishError (Object (GuzzleHttp \ Handler \ CurlHandler), Object (GuzzleHttp \ Handler \ EasyHandle), Object (GuzzleHttp \ Handler \ CurlFactory)) # 2 G: \ Xampp \ htdocs \ plivoTrial \ vendor \ guzzlehttp \ guzzle \ src \ Handler \ CurlHandler.php (43): GuzzleHttp \ Handler \ CurlFactory :: finish (объект (GuzzleHttp \ Handler \ CurlHandler), объект (GuzzleHttp \ Handler \ EasyHandle), объект ( GuzzleHttp \ Handler \ Cur lFactory)) # 3 G: \ Xampp \ htdocs \ plivoTria в G: \ Xampp \ htdocs \ plivoTrial \ vendor \ guzzlehttp \ guzzle \ src \ Handler \ CurlFactory.php в строке 187 ".
- Как заставить PHP SOAP-клиент взаимодействовать с сервисом, работающим через SSL, с недопустимым сертификатом
- имея http ссылки на странице https, но не скрипты или css
- Как установить клиентскую библиотеку PostgreSQL для PHP в Windows с включенным SSL
- Получайте и обновляйте текст каждые несколько секунд от источника HTTP до HTTPS-сайта
- PHP cURL не работает с HTTPS
Мой php-файл выглядит,
<?php require 'vendor/autoload.php'; use Plivo\RestAPI; $auth_id = "xxxxxxxxxxxxx"; $auth_token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"; $p = new RestAPI($auth_id, $auth_token); // Set message parameters $params = array( 'src' => 'xxxxxxxxxxx', 'dst' => '91xxxxxxxxxx', 'text' => 'Hi, I am Amarja :)', 'url' => 'http://localhost/untitled/sentsms.php', 'method' => 'POST' ); // Send message $response = $p->send_message($params); echo "Response : "; print_r ($response['response']); echo "<br> Api ID : {$response['response']['api_id']} <br>"; echo "Message UUID : {$response['response']['message_uuid'][0]} <br>"; ?>
Я не понимаю, как решить эту проблему. пожалуйста, помогите и много спасибо заранее.
Не отключать SSL
Вместо этого исправьте установку PHP .
Эти направления работали для меня в Windows.
Эта проблема возникает, когда ваши корневые сертификаты CA отсутствуют или устарели. Поскольку на данный момент ВСЕ установки платформы PHP для Windows не включают в дистрибутив корневые сертификаты CA, это гораздо более распространено в Windows, чем в Linux.
Вот как вы обновляете корневые сертификаты CA:
[curl]
в файле php.ini и обновите или добавьте следующую строку: curl.cainfo=c:\xampp\php\cacert.pem
Curl теперь имеет действующий набор корневых сертификатов CA и может проверять SSL-сертификаты удаленных серверов.
Если вы используете какие-либо примеры PHP для платформы Google Cloud Platform на компьютере под управлением Windows, вы получите следующую ошибку cURL: CURLE_SSL_CACERT (60). Сертификат Peer не может быть аутентифицирован с помощью известных сертификатов CA. Эта ошибка теперь должна быть понятной и как ее исправить.