В настоящее время у меня есть приложение Electron, которое извлекает данные из конечной точки API. Первоначально этот первичный URL для этой конечной точки выглядел примерно как http://my-service.com/info/otherstuff
. Я использовал NPM модуль electron-fetch
для извлечения своих данных, чтобы я мог использовать их для других целей.
Недавно я решил изменить свой сервис с publi c на частный, поэтому я сгенерировал сертификаты (crt, pem, key и т. д. c.) и изменил http://my-service.com/info/otherstuff
на https://my-service.com/info/otherstuff
в моем коде. Как и ожидалось, этого изменения было недостаточно, чтобы новый URL работал в приложении. Мой текущий код выглядит примерно так:
fetch = require('electron-fetch').default
class InfoIWant {
constructor () {
this.url = "http://my-service.com/info/otherstuff"
this.options = {
method: 'GET',
headers: {
pragma: 'no-cache',
'cache-control': 'no-cache'
}
}
}
_fetchData(onInit){
return fetch(this.url, this.options)
.then(async resp => {
console.log("This worked!");
}).catch(err => {
console.log("This didn't work...");
})
}
}
Это прекрасно работает, когда я звоню this._fetchData(true)
.
Я пытался изменить это, чтобы выглядеть следующим образом:
fetch = require('electron-fetch').default
class InfoIWant {
constructor () {
this.url = "https://my-service.com/info/otherstuff"
this.options = {
method: 'GET',
headers: {
pragma: 'no-cache',
'cache-control': 'no-cache'
}
ca: fs.readFileSync(path.resolve(__dirname, "<PATH TO LOCAL CERTIFICATE>")
cert: fs.readFileSync(path.resolve(__dirname, "<PATH TO LOCAL CERTIFICATE>")
}
}
_fetchData(onInit){
return fetch(this.url, this.options)
.then(async resp => {
console.log("This worked!");
}).catch(err => {
console.log("This didn't work...");
})
}
}
Внесение этого изменения приводит к зависанию приложения. Я попытался добавить тайм-ауты, и, как и предполагалось, он просто зависает и время ожидания. Как именно вы отправляете самозаверяющие сертификаты с модулем electron-fetch
? Это вообще возможно? Буду признателен за помощь в решении этой проблемы!