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
Lepaskan: 2024-10-26 15:05:31
asal
613 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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

Error code: 6. Description: SSL handshake failed
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan