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 중국어 웹사이트의 기타 관련 기사를 참조하세요!