PhantomJS/CasperJS を使用して HTTPS ページをロードしようとすると、「ignore-ssl-errors」を設定しているにもかかわらず、エラーが発生する場合があります。ユーザー エージェントの変更。
この問題は SSLv3 の脆弱性 (POODLE) に起因する可能性があり、Web サイト所有者は SSLv3 サポートを無効にする必要があります。 PhantomJS の以前のバージョンはデフォルトで SSLv3 になっているため、TLSv1 または「任意の」SSL プロトコルに切り替えると問題が解決します。
casperjs --ssl-protocol=tlsv1 yourScript.js
casperjs --ssl-protocol=any yourScript.js
または、PhantomJS 1.9.8 以降に更新すると問題は解決しますが、別のバグが発生します。
SSLv3 が原因かどうかを確認するには、「resource.error」イベント ハンドラを実装します。
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); });
エラーが「エラー コード: 6」と一致する場合。 : SSL ハンドシェイクに失敗しました。SSLv3 が原因である可能性があります。
最後に、証明書の問題を処理するには、「--ignore-ssl-errors=true」コマンドライン オプションの使用を検討してください。
以上が「ignore-ssl-errors」とユーザー エージェントの変更にもかかわらず、PhantomJS が HTTPS ページのロードに失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。