Proxy Community
[b]"How to properly set up a Node.js HTTPS test for secure connections?"[/b] or [b]"What's the best way to run a N - Printable Version

+- Proxy Community (https://proxycommunity.com/forum)
+-- Forum: Technical Community Support (https://proxycommunity.com/forum/forum-technical-community-support)
+--- Forum: API and Development (https://proxycommunity.com/forum/forum-api-and-development)
+--- Thread: [b]"How to properly set up a Node.js HTTPS test for secure connections?"[/b] or [b]"What's the best way to run a N (/thread-b-how-to-properly-set-up-a-node-js-https-test-for-secure-connections-b-%0A%0Aor-%0A%0A-b-what-s-the-best-way-to-run-a-n)

Pages: 1 2


[b]"How to properly set up a Node.js HTTPS test for secure connections?"[/b] or [b]"What's the best way to run a N - fastVoy99 - 15-06-2024

"Node.js HTTPS test failing—anyone else facing this issue?"

Hey folks,

So I’m trying to run a nodejs https test locally, and it’s just *not* playing nice. I’ve got my server set up with a self-signed cert, but the test keeps throwing errors like "unable to verify the first certificate."

Anyone else run into this?

I’ve tried the usual—adding `rejectUnauthorized: false` in the options, but that feels hacky. Is there a *proper* way to handle this for testing? Or am I missing something obvious?

Also, if you’ve got a solid setup for a nodejs https test, drop your config! Would love to see how others are doing it.

Thanks in advance!

---

*(PS: Yes, I googled. No, the first 5 Stack Overflow answers didn’t help.)*


“” - shadowCipher77 - 02-01-2025

Hey! Had the same issue last week. Turns out the self-signed cert wasn’t being trusted by Node. You gotta add it to the trusted certs manually.

Try this:
```bash
export NODE_EXTRA_CA_CERTS=/path/to/your/cert.pem
```
Then run your nodejs https test again. Works like a charm for me.

If you’re on Windows, you might need to tweak the env vars differently. Lmk if you need help with that!


“” - cloakLeapX99 - 29-01-2025

Ugh, self-signed certs are such a pain. I gave up and just used `rejectUnauthorized: false` for local testing. Not ideal, but hey, it gets the job done.

For a *proper* fix, you could try `https://localhost` instead of `https://127.0.0.1`—sometimes the cert is bound to the hostname.

Also, check out `mkcert` (https://github.com/FiloSottile/mkcert). It’s a lifesaver for local dev with HTTPS.


“” - stealthLurkX - 05-02-2025

Bro, same. Nodejs https test failures drove me nuts. Here’s what worked for me:

1. Generate the cert with proper SANs (Subject Alternative Names).
2. Use `openssl` to verify the cert first (`openssl verify -CAfile your-ca.crt your-cert.crt`).
3. If it’s good, Node *should* trust it.

If not, maybe your CA isn’t in the system trust store?


“” - maskedFlyX77 - 27-02-2025

Yep, ran into this too. The error’s usually about the cert chain. Try this:

```javascript
const https = require('https');
const fs = require('fs');

const options = {
key: fs.readFileSync('key.pem'),
cert: fs.readFileSync('cert.pem'),
ca: fs.readFileSync('ca.pem') // ← this part’s often missing
};
```

Make sure your `ca.pem` is in there. Node’s picky about the chain.


“” - proxyHorizon99 - 07-03-2025

Honestly, I just use `ngrok` for testing HTTPS locally. No cert setup, no headaches.

Run `ngrok http 3000`, then hit the HTTPS URL it gives you. Boom, done.

Not a *pure* nodejs https test solution, but it’s saved me hours of frustration.


“” - cloakByteX77 - 13-03-2025

Have you tried `process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'`?

It’s like `rejectUnauthorized: false` but globally. Still a hack, but useful for quick tests.

For a real fix, you’ll need to sort out the cert trust. `mkcert` (mentioned above) is gold.


“” - RapidSurf66 - 29-03-2025

Check your cert’s expiration date! I wasted a day debugging only to realize my cert had expired.

Also, if you’re on macOS, Keychain Access might be interfering. Try removing the cert from there and re-adding it.

Nodejs https test issues are often env-specific, so share your OS/node version if you’re still stuck.


“” - cloakVoyagerX - 04-04-2025

For local dev, I use `http-server` with the `--ssl` flag. Super simple:

```bash
npx http-server --ssl --cert cert.pem --key key.pem
```

No need to write custom nodejs https test code. Just point your tests at it.


“” - fastVoy99 - 06-04-2025

OP reply:
Wow, thanks for all the suggestions! Tried `mkcert` and it worked instantly—no more errors.

Still curious about the SANs thing though. Anyone got a quick example of generating a cert with SANs for localhost?

Also, `ngrok` looks slick for quick tests. Gonna try that next.

Y’all are legends. 🙌