벽에 머리를 때려서 누군가가 나를 위해 대답 할 수 있기를 바랍니다. LibCurl을 사용하여 HTTPS URL에 간단한 파일 게시를 수행합니다. 전반적으로, 그것은 작동하지만 게시물을받는 사이트에 접속하면 명백하게 문제가 해결되고 난 이해하지 못합니다.LibCurl HTTPS 자격 증명, 내부적으로 처리되는 시퀀스?
분명히, 나는 나의 요청을 준비 URL을 넣어, 사이트에 대한 사용자 및 암호를 제공합니다. 그런 다음 게시물에는 CURL_FORMADD가 포함됩니다 (다중 부분 양식을 통해 단일 파일 첨부를 추가하는 매개 변수 용).
은 내가 CURLOPT_SSL_VERIFYPEER 및 CURLOPT_SSL_VERIFYHOST 밖으로 작동 문제가 있었다 그리고 마지막으로는 다음과 같은 설정으로 일하고 있어요.여기에 문제가 있습니다. 분명히 curl_easy_perform()을 발행하면 요청을 보내려고 시도하고 응답이 돌아와서 ... 인증서 정보를 보낸 다음 인증서 정보로 전체 패키지를 다시 제출합니다. 그리고 내가 보내는 서버에 의해 받아 들여집니다.
그래서 LibCurl에 모든 ... 사용자, 암호 및 인증서 자격 증명이 모두 맨 앞에 오도록 알려 주면 내가 보내는 서버가 첫 번째 요청을 거부하지 않고 이후의 자격 증명을 얻을 수 있습니다.
감사합니다.
---- 피드백을 통해 편집. 오이겐에서 언급 한 바와 같이 더으로 보면서
...
내가 다른 수치에서 "CURLOPT_SSL_VERIFYPEER"장애인했습니다하는 "중간자"에 거래를 열 수 있도록 수행하여 타협. 나는 그것을 원하지 않는다. 인증의 방법을 발견함으로써, BASIC, 그래서 연결을 발행하고 때, 나는 지금
curl_easy_setopt(curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
함께 보내고, 그것은 CURLE_SSL_CONNECT_ERROR으로 돌아옵니다. 나는 sdterror를 얻기 위해 노력하고있어,하지만 난 수행 않는 한, 나는 DLL이 예외를 발생 얻을 그 순간 ... 통해
FILE *pLocalFile;
if(fopen_s(&pLocalFile, "MyHTTPS.Log", "w"))
return -1;
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteFileCallback);
curl_easy_setopt(curl, CURLOPT_STDERR, pLocalFile);
충돌입니다. 따라서, 나는 '연결 실패가 무엇인지에 대해서도 알 수 있습니다. 제가 강력히 의심하는 것은 인증서입니다.
사이트에서 어떤 종류의 인증을 사용합니까 (기본, NTLM, 쿠키가있는 사용자 지정 등)? 내가 묻는 이유는 libcurl이 서버가 지원하는 인증 방법을 먼저 알아 내려고 시도 할 수 있기 때문에 사용자/패스를 보내지 않고 간단한 요청 만하면 401 응답에서 사용할 수있는 것이 무엇인지 파악할 수 있습니다. SSL 부분이 상황을 다소 혼란스럽게 만들지 만 ... –
@Eugen Constantin Dinca, 인증서 기반은 내가 아는 전부입니다. 아침에 내 상사와 확인해 보겠습니다. – DRapp
@Eugen Constantin Dinca, 기본 인증이므로 지금 인증서 정보를 제공하고 있습니다. – DRapp