Rumah >hujung hadapan web >tutorial js >Mengapakah PhantomJS gagal membuka halaman HTTPS dan bagaimana saya boleh membetulkannya?

Mengapakah PhantomJS gagal membuka halaman HTTPS dan bagaimana saya boleh membetulkannya?

Linda Hamilton
Linda Hamiltonasal
2024-10-26 15:05:31611semak imbas

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

Ralat Halaman HTTPS Memuatkan PhantomJS

PhantomJS/CasperJS menghadapi kesukaran membuka halaman web tertentu, termasuk https://maizepages.umich.edu. Apabila CasperJS cuba memuatkan halaman ini, ia mengembalikan ralat "PhantomJS failed to open page status=fail."

Menentukan Punca

Untuk mengenal pasti punca asas, ia berguna untuk memeriksa log ralat. Satu isu biasa ialah kekurangan sokongan untuk TLSv1. Versi PhantomJS sebelum 1.9.8 menggunakan SSLv3 secara lalai, yang telah dilumpuhkan pada banyak tapak web disebabkan oleh kerentanan POODLE.

Penyelesaian: Sokongan TLSv1

Untuk menangani perkara ini isu, nyatakan TLSv1 sebagai protokol SSL menggunakan arahan berikut:

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

Secara bergantian, protokol "mana-mana" boleh digunakan, yang akan menyokong mana-mana protokol SSL lebih baharu yang tersedia dalam versi PhantomJS akan datang. Walau bagaimanapun, ini mungkin mendedahkan kelemahan pada tapak yang belum melumpuhkan SSLv3 lagi.

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

Sahkan Pembetulan

Untuk mengesahkan sama ada ralat itu berkaitan dengan SSLv3, tambahkan pengendali ralat sumber berikut pada skrip anda:

<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>

Jika ralat itu sememangnya berkaitan SSLv3, mesej ralat akan menyerupai:

Error code: 6. Description: SSL handshake failed

Pilihan Tambahan

Untuk ralat berkaitan sijil, adalah disyorkan untuk menggunakan pilihan --ignore-ssl-errors=true baris arahan. Ini akan mengabaikan ralat pengesahan sijil SSL.

Atas ialah kandungan terperinci Mengapakah PhantomJS gagal membuka halaman HTTPS dan bagaimana saya boleh membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn