>  기사  >  웹 프론트엔드  >  PhantomJS가 HTTPS 페이지를 열지 못하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

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

Linda Hamilton
Linda Hamilton원래의
2024-10-26 15:05:31509검색

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 버전은 기본적으로 POODLE 취약점으로 인해 많은 웹사이트에서 비활성화된 SSLv3을 사용합니다.

해결책: TLSv1 지원

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

<code class="sh">casperjs --ssl-protocol=tlsv1 yourScript.js</code>

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

<code class="sh">casperjs --ssl-protocol=any yourScript.js</code>

수정 확인

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

<code class="sh">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);
});</code>

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

Error code: 6. Description: SSL handshake failed

추가 옵션

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

위 내용은 PhantomJS가 HTTPS 페이지를 열지 못하는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.