curl 오류 문의

curl 오류 문의

QA

curl 오류 문의

답변 3

본문

cURL Error (1): Protocol "https" not supported or disabled in libcurl

 

이와 같은 오류가 나오는데요?

 

일반 다른 https 붙은 도메인으로 데이터 보내고 불러오고 다 되는데요?

 

특정 url로만 전송하면 위와 같은 오류가 나옵니다...

https://****.****.amazonaws.com/create

 

웃긴건  postman 으로 동일한 주소를 사용해보면 리턴값이 수신이 된다는게 함정인데.....

 

어느 부분을 봐야 할지 조언좀 얻을수 있을가요?

 

gpt한테 물어보면  update 하라고 하는데.....  다른곳은 잘되니까.. 쉽게 업데이트를 못하겠네요 ;;

제쪽의 정보를 업데이트가 답일가요?

 

 

 

이 질문에 댓글 쓰기 :

답변 3

보안인증 떄문에 그런게 아닐까요?

 

구체적으로 어떻게 에러가 되는 안내가 좀 더 필요할듯 생각됩니다.

구체적인 오류가 더 안나와서요;;
cURL Error (1): Protocol "https" not supported or disabled in libcurl

curl_init 으로    POST  JSON 데이터 전송 하면  다른 HTTPS로 시작하는 URL은 정상적으로  송수신이 되는데요... 이상하게 

https://****.****.amazonaws.com  요기로만 전송하면  위 오류 문구가 나오네요

CURL 까지 GPT한테 물어보면서  업데이트 재설치 해보았는데... 그런데도 안되네요 다시 CURL 관련  재설치 해보고 시도 한번 해봐야 겠네요

Protocol "https" not supported or disabled in libcurl

이말듯이뭐냐면 libcurl 란 라이브러이에서 https를 지원하지 못한다는것니다.

 

다른 HTTPS로 정상적으로 수신하신다고 하신거 같은데....ssl도 보안 체계가 있습니다.

TLS 이런 https보안 체계가 있는데..TLS v1.0 부터 TLS v1.3 까지 현재 버전업 되어있습니다.

(요즘 네이버도 TLS v1.3 쪽으로 강화하고 있습니다. 몇일전에 네이버로부터 메일이와서 알았습니다.)

 

libcurl 여기 라이브러리에서 수신하려면 libcurl의 버전을 더 높여야 합니다. 

수신이 안된다면.즉 curl 라이브러리 버전을 높혀야할꺼 같습니다. 요즘 이런 파싱과 같은 여러 문제로인해서 보안쪽도 계속 강화 되고 있는 추세입니다.

 

참고 되셨으면 합니다.

GPT한테 물어보니까  OpenSSL 1.1.1k  25 Mar 2021  이버전은 TLS v1.3 지원 가능 하다고 나오는거 같은데요

#  curl --version  실행하면
curl --version
curl 7.61.1 (x86_64-redhat-linux-gnu) libcurl/7.61.1 OpenSSL/1.1.1k zlib/1.2.11 brotli/1.0.6 libidn2/2.2.0 libpsl/0.20.2 (+libidn2/2.2.0) libssh/0.9.6/openssl/zlib nghttp2/1.33.0
Release-Date: 2018-09-05
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz brotli TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL

뭐 이렇게 죽죽 나오는데..... gpt가 설명하는 걸로만 보면  정상적인거같은데..  받는쪽 에 문의 한번 넣어 봐야 겠네요  답변 및 조언 감사합니다 :)

받는쪽도 시원한 답을 안주길래  혼자 열심히 이것저것 만지다  우연히... 해결을 봤네요...

기존 사용하던 방식이 아래와 같은데요

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_field_string);
curl_setopt($ch, CURLOPT_POST, true);
$response = curl_exec($ch);
curl_close ($ch);


뭐 대충 각항목 설정해서 사용 하였는데... 뭐 특별한 문제 없어서 잘썼는데

문제가되는 곳은 위 설정 방식으로 하면 안되는거였네요..
그래서 이것저것 폭풍 검색으로 아래와 같이 설정을 하게되었는데요

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://****.*****.amazonaws.com/create',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_SSL_VERIFYPEER => true,
  CURLOPT_POSTFIELDS => 데이터,
  CURLOPT_HTTPHEADER => 헤더설정
));


이렇게 설정한  방식은 전송이 되네요;;;  아 이것 해결한다고 쌩쑈를 했네요;
근데... 위 두가지 차이가 뭐 차이가 있는건지 GPT한테 물어봐야 겠네요 ;;
어쨋거나 해결했느니  패스~ ㅋ

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
filter #php ×
전체 15,430
© SIRSOFT
현재 페이지 제일 처음으로