When I try to run a basic client example I get this error:
Error: self-signed certificate
at TLSSocket.onConnectSecure (node:_tls_wrap:1540:34)
at TLSSocket.emit (node:events:513:28)
at TLSSocket._finishInit (node:_tls_wrap:959:8)
at TLSWrap.ssl.onhandshakedone (node:_tls_wrap:743:12) {
code: 'DEPTH_ZERO_SELF_SIGNED_CERT'
}
Full client.js
const request = require('@derhuerst/gemini/client')
const opt = {
// follow redirects automatically
// Can also be a function `(nrOfRedirects, response) => boolean`.
followRedirects: false,
// client certificates
useClientCerts: false,
letUserConfirmClientCertUsage: null,
//clientCertStore: defaultClientCertStore,
// time to wait for socket connection & TLS handshake
connectTimeout: 60 * 1000, // 60s
// time to wait for response headers *after* the socket is connected
headersTimeout: 30 * 1000, // 30s
// time to wait for the first byte of the response body *after* the socket is connected
timeout: 40 * 1000, // 40s
// additional options to be passed into `tls.connect`
tlsOpt: {},
// verify the ALPN ID chosen by the server
// see https://de.wikipedia.org/wiki/Application-Layer_Protocol_Negotiation
verifyAlpnId: alpnId => alpnId ? (alpnId === ALPN_ID) : true,
};
request('gemini://gemini.circumlunar.space/', opt, (err, res) => {
console.log(opt);
if (err) {
console.error(err)
process.exit(1)
}
console.log(res.statusCode, res.statusMessage)
if (res.meta) console.log(res.meta)
res.pipe(process.stdout)
})
Environment
# Node
v18.16.0
# NPM
v9.6.5
Resolution
I was able to get requests working by adding the following line to the top of client.js.
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
I'm not totally sure why this fixes it because I don't understand the root problem. But this works on my end.
Source for solution:
https://stackoverflow.com/questions/23601989/client-certificate-validation-on-server-side-depth-zero-self-signed-cert-error
When I try to run a basic client example I get this error:
Full
client.jsEnvironment
Resolution
I was able to get requests working by adding the following line to the top of
client.js.I'm not totally sure why this fixes it because I don't understand the root problem. But this works on my end.
Source for solution:
https://stackoverflow.com/questions/23601989/client-certificate-validation-on-server-side-depth-zero-self-signed-cert-error