`tls.getCACertificates("default")` always returns an empty list when using `--use-openssl-ca`
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- JavaScript
- Estrellas
- 122k
- Forks
- 37.3k
- Merge medio
- 4 d 2 h
- PR fusionados (30 d)
- 283
Descripción
Version
v26.4.0
Platform
Linux jvm1 6.17.0-1025-oem #25-Ubuntu SMP PREEMPT_DYNAMIC Fri May 29 12:11:29 UTC 2026 x86_64 GNU/Linux
Subsystem
tls
What steps will reproduce the bug?
- Run
NODE_OPTIONS="--use-openssl-ca" node -e 'console.log("Default certificates:", tls.getCACertificates("default")); fetch("https://example.org").then(rsp => console.log("HTTP status code:", rsp.status));'
Its output (provided your default OpenSSL certs are fairly standard) will be:
Default certificates: []
HTTP status code: 200
As can be seen, the request to https://example.org succeeds despite us having no default certificates according to tls.getCACertificates("default")
How often does it reproduce? Is there a required condition?
Always
What is the expected behavior? Why is that the expected behavior?
I would expect tls.getCACertificates("default") to return the certificates provided by OpenSSL that NodeJS uses to verify the certificate chain. I expect this since the documentation for the "default" type in tls.getCACertificates states: "return the CA certificates that will be used by the Node.js TLS clients by default".
What do you see instead?
An empty array
Additional information
Invoking tls.setDefaultCACertificates([]) and fetching https://example.org afterwards does cause UNABLE_TO_GET_ISSUER_CERT_LOCALLY
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza ejecutando la reproducción indicada NODE_OPTIONS="--use-openssl-ca" e inspecciona el punto de entrada tls.getCACertificates("default") en el subsistema tls. Compara su resultado con los certificados usados por fetch y con el comportamiento después de tls.setDefaultCACertificates([]). Se considera terminado cuando la lista predeterminada refleja los certificados de OpenSSL usados para la verificación y la reproducción tiene cobertura de pruebas.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- javascript, linux, node.js
- Área
- backend, security
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Tranquilo
- Claridad
- Bastante claro
- Aptitud para principiantes
- 54/100