Next JS Skumt fel = Axios GET från localhost men fungerar vid commit

Permalänk

Next JS Skumt fel = Axios GET från localhost men fungerar vid commit

Hej

Jag har råkat ut för ett skumt fel. Se nedan:

Jag har gjort en app i Next JS och hämtar diverse data från eget API . Se nedan:

const Grid = await axios.get<Array<AutostoreDateDataArrType>>(`/web/api/statistik/fetchPlockData?date=${choosenDate}`, { validateStatus: () => true });

Kommunikationen fungerar fint till det apit men för svaret i consolen är lite underligt --> data: "Execpetion Error: unable to verify the first certificate"

Status är 500!

Apit i sin tur hämtar data från en databas. Se nedan:

export const fetchPlockData = async (req: NextApiRequest, res: NextApiResponse) => { const { date } = req.query; try { const plockOrderRes = await axios.get<number>('https://xxx.xxx.xxx/xxxxx/ASPlock/GetPlockOrder', { validateStatus: () => true }); console.log('plockOrderRes :', plockOrderRes); ………………………………………………………………… ………………………………………………………………… ………………………………………………………………… ………………………………………………………………… ……………………………

Jag loggar och funktionen körs t.o.m. try { men försöker axios hämta data så stoppas körningen efter dvs inga fler loggar visas

X står för något jag inte kan visa.

Jag kan delge vis kod om ni behöver det.

Mvh Fredrik

Visa signatur

Computer: Windows 10, 64-bit, Intel i9 - 10850K, Asus Rog MAXIMUS XII HERO (WI-FI), 32GB RAM, Asus RTX3070

Game control: Home Cockpit, Keyboard, Saitek Pro Flight X-56 Rhino H.O.T.A.S. 

Permalänk

Om 500 stämmer så kan det vara något felkonfigurerat på serversidan: https://stackoverflow.com/questions/31673587/error-unable-to-...

Har du konfigurerat lokalt så att HTTPS med certs å allt fungerar för övrigt?

Mvh,
WKL.

Visa signatur

"Den säkraste koden är den som aldrig skrivs"

Permalänk
Medlem
Skrivet av freddehboy:

Kommunikationen fungerar fint till det apit men för svaret i consolen är lite underligt --> data: "Execpetion Error: unable to verify the first certificate"

Skrivet av WebbkodsLärlingen:

Har du konfigurerat lokalt så att HTTPS med certs å allt fungerar för övrigt?

HTTPS brukar inte funka så bra på localhost. Oftast brukar problemet vara att servern presenterar ett certifikat för hostnamnet, och det funkar ju inte när man anslutit till localhost.

Av den information som givits går det inte att avgöra vilket anrop det är som inte klarar av att verifiera certifikatet, men ett av dem är det.

Visa signatur

Bra, snabbt, billigt; välj två.

Ljud
PC → ODAC/O2 → Sennheiser HD650/Ultrasone PRO 900/...
PC → S.M.S.L SA300 → Bowers & Wilkins 607

Permalänk
Medlem

Eftersom det går att logga i API:et är det tydligt att TLS-handskakningen och HTTPS-anropet från klienten till API:et lyckas.

Därmed är det TLS-handskakningen från API:et mot ”databasen” som misslyckas, ett exception kastas och propageras till klienten som ett status 500-fel.

Felsökning kan till exempel göras genom att göra anropet manuellt från servern med API:et, mot databasen. Här dyker det upp frågor om vilken databas med cert som Axios använder för att verifiera databasserverns cert. Eftersom det inte finns något bra felmeddelande så kan det även vara något simpelt fel - som nämnts ovan att namnen inte matchar. Eller att certet har gått ut. Tråkigast är alltså om klienten (API:et i det problematiska anropet) inte kan verifiera certifikatkedjan eftersom den saknar cert i sin certdatabas.

En webbläsare, curl eller openssl s_client bör gå att använda för den manuella felsökningen.

Permalänk

Det som är märkligt är att samma anrop finns i prod och där fungerar det hur fint som helst?

Visa signatur

Computer: Windows 10, 64-bit, Intel i9 - 10850K, Asus Rog MAXIMUS XII HERO (WI-FI), 32GB RAM, Asus RTX3070

Game control: Home Cockpit, Keyboard, Saitek Pro Flight X-56 Rhino H.O.T.A.S. 

Permalänk
Medlem
Skrivet av freddehboy:

Det som är märkligt är att samma anrop finns i prod och där fungerar det hur fint som helst?

Inte särskilt konstigt. Certifikatet finns sannolikt i prod, men du har det inte på din localhost.

Visa signatur

AMD Ryzen 7 1700X 3.8 GHz 20MB | ASUS PRIME X370-PRO | MSI GeForce GTX 1080 Gaming X 8GB | G.Skill 16GB DDR4 3200 MHz CL14 Flare X | Corsair RM650x 650W

Permalänk

För ett antal veckor sedan installerades ett certifikat felaktigt på min dator vilken var avsett för en Linux server. Misstänker att det har med mitt fel att göra?

Visa signatur

Computer: Windows 10, 64-bit, Intel i9 - 10850K, Asus Rog MAXIMUS XII HERO (WI-FI), 32GB RAM, Asus RTX3070

Game control: Home Cockpit, Keyboard, Saitek Pro Flight X-56 Rhino H.O.T.A.S. 

Permalänk
Medlem
Skrivet av freddehboy:

För ett antal veckor sedan installerades ett certifikat felaktigt på min dator vilken var avsett för en Linux server. Misstänker att det har med mitt fel att göra?

Nej, det låter osannolikt.

Du behöver ställa ut ett certifikat till localhost och sedan måste du konfigurera din lokala server så att certifikatet används.
Hur du gör det beror på din server, men här finns en bra artikel som förklarar:
https://web.dev/articles/how-to-use-local-https

Visa signatur

AMD Ryzen 7 1700X 3.8 GHz 20MB | ASUS PRIME X370-PRO | MSI GeForce GTX 1080 Gaming X 8GB | G.Skill 16GB DDR4 3200 MHz CL14 Flare X | Corsair RM650x 650W