Mensaje de error
error Error: self-signed certificate in certificate chain
También se muestra como
- error Error: self signed certificate in certificate chain
Yarn 1.x imprime «error Error: …» seguido de una traza de pila de Node.js (at TLSSocket.onConnectSecure …). Node.js 16 y anteriores lo escriben «self signed». Yarn 4 informa de los fallos de TLS con su propio formato: «➤ YN0001: RequestError: <reason>».
Yarn Classic (1.x) — registry request over HTTPS
Qué significa
Yarn Classic no pudo verificar el certificado del registro porque la cadena termina en una raíz autofirmada en la que Node.js no confía. Yarn imprime el error de Node.js tal cual, con una traza de pila debajo. En una red de empresa es el síntoma clásico de un proxy que inspecciona TLS, en cuya raíz confía el navegador, pero no Node.js.
Por qué ocurre
Un proxy que inspecciona TLS vuelve a firmar registry.yarnpkg.com
frecuenteLos proxies de empresa presentan certificados de su propia raíz, en la que confía el sistema operativo, pero no Node.js.
Un registro privado que envía su propia raíz
ocasionalRegistros internos con certificados de la empresa; aun así, el cliente tiene que confiar en la raíz de la cadena.
Node.js ignora el almacén de confianza del sistema operativo
ocasionalYarn se ejecuta sobre Node.js, que usa su lista integrada de raíces salvo que se le indique lo contrario.
Cómo solucionarlo
- 1.
Configurar cafile en Yarn 1
Al configurar cafile con yarn config set cafile, Yarn verifica el registro con ese archivo PEM; como el ajuste equivalente de npm, sustituye las raíces predeterminadas en las solicitudes al registro.
bash # Yarn 1.x setting (stored in ~/.yarnrc) yarn config set cafile /etc/ssl/private-ca/corp-proxy-root.pem yarn config get cafile - 2.
O usar NODE_EXTRA_CA_CERTS
Añade la raíz a la lista integrada de Node.js para Yarn y para cualquier otra herramienta de Node.js del entorno.
bash export NODE_EXTRA_CA_CERTS=/etc/ssl/private-ca/corp-proxy-root.pem yarn install - 3.
Yarn 4: httpsCaFilePath
El Yarn moderno lee httpsCaFilePath de .yarnrc.yml; Yarn 4 se niega a arrancar si encuentra la opción heredada caFilePath.
yaml # Yarn 4 (Berry): .yarnrc.yml — Yarn 4 rejects the old caFilePath key httpsCaFilePath: /etc/ssl/private-ca/corp-proxy-root.pem - 4.
Diagnóstico temporal: strict-ssl false
Confirma que la confianza es el único problema. Los paquetes ejecutan scripts de instalación, así que dejar la verificación desactivada abre la puerta a paquetes sustituidos; elimina el ajuste justo después de la prueba.
bash # Temporary diagnostic only; revert immediately afterwards yarn config set strict-ssl false && yarn install; yarn config delete strict-ssl