pileup
pileup

Reputation: 3262

FetchError: unable to verify the first certificate, but I added rejectUnauthorized: false

I have a simple getServerSideProps() function that calls an external API but throws this error:

FetchError: request to https://nginx/api/items failed, reason: unable to verify the first certificate

The Node server does not trust my self-signed certificate.

So I found this Stack Overflow post to bypass that (I'm only using it in development):

How to configure axios to use SSL certificate?

So I added the rejectUnauthorized: false to my Axios call like so:

export async function getServerSideProps() {
const res = await fetch('https://nginx/api/items',
   { rejectUnauthorized: false,
     method: 'GET',
   }
)

const { data } = await res.json()
return { props: { data } }
}

But I still get the error.

Is there another way to make my self-signed certificate work with Next? I found some other solutions, but they are for Express, I don't know how to implement that for Node with Next.js

Upvotes: 2

Views: 6163

Answers (1)

Mureinik
Mureinik

Reputation: 310993

The rejectUnautorized belongs in an HttpAgent:

const https = require('https');
const agent = new https.Agent({
  rejectUnauthorized: false
});
const res = await fetch('https://nginx/api/items', { 
     method: 'GET',
     agent
   }
);

Upvotes: 4

Related Questions