PhantomJS/CasperJS が HTTPS ページの読み込みで問題を解決する
PhantomJS/CasperJS を使用して安全な HTTPS ページを読み込もうとすると、ユーザーにエラーが発生する場合があります「PhantomJS はページ status=fail を開けませんでした。」この問題に対処するには、SSLv3 の脆弱性に対処するための特別な戦略が必要です。
エラー分析
POODLE SSLv3 脆弱性が最近発見されたため、Web サイト所有者はサイトで SSLv3 サポートを無効にするよう促されました。 。ただし、PhantomJS バージョン 1.9.8 より前のバージョンではデフォルトで SSLv3 が使用されるため、そのような Web サイトにアクセスすると読み込みエラーが発生する可能性があります。
解決策
この問題を解決するには、 PhantomJS を呼び出すときの TLSv1 プロトコルの使用:
casperjs --ssl-protocol=tlsv1 yourScript.js
異なる SSL プロトコルを使用する将来の PhantomJS バージョンに対応できるより包括的なソリューションについては、次を使用します:
casperjs --ssl-protocol=any yourScript.js
代替アプローチ
または、PhantomJS 1.9.8 以降に更新して、SSLv3 脆弱性の問題を回避します。ただし、これにより、CasperJS に影響する別のバグが発生する可能性があります。
検証
SSLv3 が根本的な問題であるかどうかを確認するには、CasperJS に resource.error イベント ハンドラーを実装します。 script:
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 コマンドライン オプションの利用を検討してください。
以上がPhantomJS/CasperJS で HTTPS ページ読み込みの問題を解決するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。