"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > PhantomJS가 HTTPS 페이지를 열지 못하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

PhantomJS가 HTTPS 페이지를 열지 못하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

2024-11-08에 게시됨
검색:939

Why does PhantomJS fail to open HTTPS pages and how can I fix it?

PhantomJS HTTPS 페이지 로드 오류

PhantomJS/CasperJS는 https://maizepages.umich.edu를 포함한 특정 웹 페이지를 여는 데 어려움을 겪고 있습니다. CasperJS가 이 페이지를 로드하려고 하면 "PhantomJS failed to open page status=fail."이라는 오류가 반환됩니다.

원인 확인

기본 원인을 식별하려면, 오류 로그를 검사하는 것이 도움이 됩니다. 일반적인 문제 중 하나는 TLSv1에 대한 지원이 부족하다는 것입니다. 1.9.8 이전의 PhantomJS 버전은 기본적으로 SSLv3을 사용합니다. SSLv3은 POODLE 취약점으로 인해 많은 웹사이트에서 비활성화되었습니다.

해결책: TLSv1 지원

이 문제를 해결하려면 문제가 발생하면 다음 명령을 사용하여 TLSv1을 SSL 프로토콜로 지정하십시오.

casperjs --ssl-protocol=tlsv1 yourScript.js

또는 "any" 프로토콜을 사용할 수 있습니다. 이는 향후 PhantomJS 버전에서 사용할 수 있는 최신 SSL 프로토콜을 지원합니다. 그러나 이로 인해 아직 SSLv3을 비활성화하지 않은 사이트에 취약점이 노출될 수 있습니다.

casperjs --ssl-protocol=any yourScript.js

수정 사항 확인

오류가 SSLv3과 관련된 것인지 확인하려면 스크립트에 다음 리소스 오류 처리기를 추가하세요.

casper.on("resource.error", function(resourceError){
    console.log('Unable to load resource (#'   resourceError.id   'URL:'   resourceError.url   ')');
    console.log('Error code: '   resourceError.errorCode   '. Description: '   resourceError.errorString);
});

오류가 실제로 SSLv3과 관련된 경우 오류 메시지는 다음과 같습니다.

Error code: 6. Description: SSL handshake failed

추가 옵션

인증서 관련 오류의 경우 --ignore-ssl-errors=true 명령줄 옵션을 사용하는 것이 좋습니다. 그러면 SSL 인증서 확인 오류가 무시됩니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3