我正在嘗試使用cheerio 學習網路報廢。但是當我試圖廢棄內容時。在其中一個站點中,我收到以下錯誤:
Error: unable to verify the first certificate
at TLSSocket.onConnectSecure (_tls_wrap.js:1515:34)
at TLSSocket.emit (events.js:400:28)
at TLSSocket._finishInit (_tls_wrap.js:937:8)
at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:709:12) {
code: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE',
我無法理解我試圖廢棄的其他網站我沒有收到錯誤。
這是我的代碼:
const express = require('express');
const axios = require('axios');
const cheerio = require('cheerio');
const app = express();
const url = "--------------Link Of the site--------------";
axios.get(url)
.then(response => {
const html = response.data;
const $ = cheerio.load(html);
const articles = [];
$('.text-left a',html).each(function(){
const title= $(this).text();
const url= $(this).attr('href');
articles.push({
title,
url
})
})
console.log(articles);
})
.catch(err => {
console.log(err);
})
app.listen(8080, () => console.log('Server running'));
請指導我如何解決此錯誤。
uj5u.com熱心網友回復:
您收到錯誤的網站提供的證書無效(證書本身是錯誤創建或損壞的,或者與其聲稱的頒發者不匹配);其他站點正在提供有效的證書,因此他們不會收到此錯誤,而是可以正常作業。
如果該站點可公開訪問(在 443 上),請嘗試使用https://www.ssllabs.com/ssltest 輕松獲得相當徹底的分析。(它實際上會檢查并顯示很多關于站點安全性的資訊,不僅是證書,而且你可以忽略其他部分。)
否則,或者如果這沒有足夠的幫助,假設您擁有或(可以)獲得 OpenSSL,請執行
openssl s_client -connect host:port -servername host -showcerts
# on OpenSSL 1.1.1 up you can omit the -servername host
然后將握手中的證書(從-----BEGIN CERTIFICATE-----到的塊-----END CERTIFICATE-----)拆分為單獨的檔案,至少前兩個檔案
openssl x509 -in fileN -text
并確定它們是否正確鏈接(first.issuer = second.subject 和 first.AKI = second.SKI,如果存在)并進行測驗
openssl verify -CAfile file2 -partial_chain file1
# assuming OpenSSL 1.0.2 up; if older post details, this will be much harder
PS:您的意思是刮/刮(在背景關系中,從中獲取資訊)而不是刮/刮(丟棄為有缺陷或不可用)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/432999.html
下一篇:在表單標簽內現場添加屬性框
