see quitar password how example delete configurar node.js linux npm proxy pac

node.js - quitar - quit proxy npm



Usar npm detrĂ¡s del proxy corporativo.pac (19)

Acabo de tener un problema muy similar, en el que no pude lograr que npm trabajara detrás de nuestro servidor proxy.

Mi nombre de usuario es de la forma "dominio / nombre de usuario", incluida la barra en la configuración del proxy que resultó en una barra inclinada que aparece. Entonces, ingresando esto:

npm config set proxy "http://domain/username:password@servername:port/"

luego, al ejecutar esta npm config get proxy devuelve esto: http://domain/username:password@servername:port/

Por lo tanto, para solucionar el problema, en su lugar, URL codificó la barra invertida, así que ingresé esto:

npm config set proxy "http://domain%5Cusername:password@servername:port/"

y con esto se corrigió el acceso de proxy.

Necesito descargar varios paquetes a través de npm, pero nuestra configuración de proxy corporativo es un archivo .pac (estoy en Windows)

ya lo intenté

npm config set proxy http://mydomain/username:[email protected]:8181/proxy.pac npm config set https-proxy http://mydomain/username:[email protected]:8181/proxy.pac

o

npm config set proxy http://1.2.3.4:8181/proxy.pac npm config set https-proxy http://1.2.3.4:8181/proxy.pac

pero no funciona ...

¿cualquier sugerencia? Gracias


Agregar las líneas a continuación en el archivo .typingsrc me ayudó.

{ "rejectUnauthorized": false, "registryURL" :"http://api.typings.org/" }


Busque la url del archivo pac en la configuración de Internet Explorer lan y descargue el archivo pac desde la URL configurada. El archivo pac es solo un archivo javascript con una función llamada FindProxyForURL que devuelve diferentes servidores proxy en diferentes escenarios.

Intente encontrar un host en ese archivo pac que cree que es para el tráfico web general y conéctelo a .npmrc en C:/Users/<username>/.npmrc

proxy=http://<username>:<pass>@proxyhost:<port> https-proxy=http://<uname>:<pass>@proxyhost:<port>

Aunque puede iniciar sesión con su dominio y nombre de usuario en su máquina corporativa, es muy posible que el nombre de dominio del directorio activo del usuario no sea necesario para el proxy , solo el nombre de usuario y la contraseña (que pueden ser diferentes al inicio de sesión de Active Directory)

No te olvides de jugar con el escape de los caracteres de contraseña especiales.


Debes usar "npm config set http-proxy "

utilizar:

npm config set http-proxy http://1.2.3.4:8181 npm config set https-proxy http://1.2.3.4:8181


Descargue su archivo .pac . Ábralo en cualquier editor y busque PROXY = "PROXY XXXX:80; .Puede tener muchos proxies, copiar cualquiera de ellos y ejecutar los siguientes comandos de terminal:

npm config set proxy http://X.X.X.X:80 npm config set https-proxy http://X.X.X.X:80

¡Ahora debería poder instalar cualquier paquete!


En el trabajo, utilizamos ZScaler como nuestro proxy. La única forma en que logré que npm trabaje fue usar cntlm .

Ver esta respuesta:

NPM detrás del proxy NTLM


Me encontré con un problema similar y descubrí que mi archivo de configuración npm (.npmrc) tiene una entrada de registro incorrecta. lo comenté y re run npm install. funcionó.


Me encontré con varios problemas con esto y, finalmente, lo que hice fue lo siguiente:

  1. Fiddler usado, con "Authentication Authenticate" seleccionado
  2. En las reglas personalizadas de violinista, agregué

    if (m_AutoAuth) {oSession["X-AutoAuth"] = "domain//username:password";}

  3. Finalmente en npm, establecí el proxy en http: // localhost: 8888

Esto funcionó bien.


Obtendrá el host y el puerto proxy de su administrador o soporte del servidor.

Después de esa configuración

npm config set http_proxy http://username:[email protected]:itsport npm config set proxy http://username:[email protected]:itsport

Si hay algún carácter especial en la contraseña, prueba con% urlencode. Por ejemplo: - libra (hash) shuold ser reemplazado por% 23.

Esto funcionó para mí ...


Para ampliar la respuesta de @Steve Roberts.

Mi nombre de usuario es de la forma "dominio / nombre de usuario", incluida la barra en la configuración del proxy que resultó en una barra inclinada que aparece. Entonces, ingresando esto:

npm config set proxy "http://domain/username:password@servername:port/"

También tuve que URL codificar mi domain/user cadena de domain/user , sin embargo, tengo un espacio dentro de mi nombre de usuario, así que puse un + para codificar la codificación de URL de espacio, pero se doblaría como %2B (que es la codificación URL para el signo más, sin embargo, la codificación URL de un espacio es %20 ), así que tuve que hacer lo siguiente:

comando npm

//option one //it works for some packages npm config set http_proxy "http://DOMAIN%5Cuser+name:[email protected]:port" npm config set proxy "http://DOMAIN%5Cuser+name:[email protected]:port" //option two //it works best for me //please notice that I actually used a space //instead of URL encode it with ''+'', ''%20 '' OR %2B (plus url encoded) npm config set http_proxy "http://DOMAIN%5Cuser name:[email protected]:port" npm config set proxy "http://DOMAIN%5Cuser name:[email protected]:port"

solución de problemas de configuración npm

npm config list para obtener los valores analizados que había establecido anteriormente, y así es como me enteré de la doble codificación. Extraño.

Saludos.

VARIABLES DE ENTORNO DE WINDOWS (Indicador CMD)

Actualizar

Resulta que incluso con las configuraciones anteriores, todavía tenía algunos problemas con algunos paquetes / scripts que usan Request - Cliente HTTP simplificado internamente para descargar cosas. Entonces, como se explicó en el archivo Léame anterior, podemos especificar variables de entorno para establecer el proxy en la línea de comando, y Request respetará esos valores.

Luego, después de (y soy reacio a admitir esto) varios intentos (más como días), de tratar de establecer las variables de entorno, finalmente tuve éxito con las siguientes pautas:

rem notice that the value after the = has no quotations rem - I believe that if quotations are placed after it, they become rem part of the value, you do not want that rem notice that there is no space before or after the = sign rem - if you leave a space before it, you will be declaring a variable rem name that includes such space, you do not want to do that rem - if you leave a space after it, you will be including the space rem as part of the value, you do not want that either rem looks like there is no need to URL encode stuff in there SET HTTP_PROXY=http://DOMAIN/user name:[email protected]:port SET HTTPS_PROXY=http://DOMAIN/user name:[email protected]:port

cntlm

Utilicé la técnica anterior durante unas semanas, hasta que me di cuenta de la sobrecarga de actualizar mi contraseña en todas las herramientas que necesitaban la configuración del proxy.

Además de npm, también uso:

  • cenador
  • vagabundo
    • caja virtual (ejecutando linux)
    • apt-get [linux]
  • git
  • vscode
  • soportes
  • átomo
  • TSD

cntlm Pasos de configuración

Entonces, instalé cntlm . Establecer cntlm es bastante directo, busca el archivo ini @ C:/Program Files/Cntlm/cntlm.ini

  1. Abra C:/Program Files/Cntlm/cntlm.ini (es posible que necesite derechos de administrador)
  2. busca las líneas de Username de Username y Domain (línea 8-9, creo)
    • agrega tu nombre de usuario
    • agrega tu dominio
  3. En la ejecución del indicador de cmd:

    cd C:/Program Files/Cntlm/ cntlm -M cntlm -H

    • se le pedirá la contraseña:

    cygwin warning: MS-DOS style path detected: C:/Program Files/Cntlm/cntlm.ini Preferred POSIX equivalent is: /Cntlm/cntlm.ini CYGWIN environment variable option "nodosfilewarning" turns off this warning. Consult the user''s guide for more details about POSIX paths: http://cygwin.com/cygwin-ug-net/using.html#using-pathnames Password:

  4. La salida que obtenga de cntlm -H se verá algo así como:

    PassLM 561DF6AF15D5A5ADG PassNT A1D651A5F15DFA5AD PassNTLMv2 A1D65F1A65D1ASD51 # Only for user ''user name'', domain ''DOMAIN''

    • Se recomienda que use PassNTLMv2 así que agregue un # antes de la línea PassLM y PassNT o no los use
  5. Pegue la salida de cntlm -H en el archivo ini reemplazando las líneas para PassLM , PassNT y PassNTMLv2 , o comente las líneas originales y agregue las suyas.
  6. Agregue sus servidores Proxy . Si no sabe qué es el servidor proxy ... Haga lo que hice, busqué el archivo de configuración automática de mi proxy buscando la clave del Registro AutoConfigURL en HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Internet Settings . Navega hacia esa url y busca el código que resulta ser JavaScript.
  7. Opcionalmente, puede cambiar el puerto donde cntlm escucha cambiando la línea Listen #### , donde #### es el número de puerto.

Configurar NPM con cntlm

Entonces, apuntas npm a tu proxy cntml, puedes usar la ip, utilicé localhost y el puerto predeterminado para cntlm 3128 para que mi url de proxy se vea así

http://localhost:3128

Con el comando apropiado:

configuración npm establecer proxy http: // localhsot: 3128

Es mucho mas simple Configura todas sus herramientas con esa misma URL y solo actualiza la contraseña en un solo lugar. La vida es mucho más simple que no.

Debe configurar el certificado de CA npm

De la documentación npm ca

Si su proxy corporativo está interceptando conexiones https con su propio certificado autofirmado, esto es imprescindible para evitar npm config set strict-ssl false (gran no-no).

Pasos básicos

  1. Obtenga el certificado de su navegador (Chromes funciona bien). Exportarlo como Base-64 codificado X.509 (.CER)
  2. Reemplazar nuevas líneas con /n
  3. Edite su .npmrc agregue una línea ca[]="-----BEGIN CERTIFICATE-----/nXXXX/nXXXX/n-----END CERTIFICATE-----"

Cuestiones

Me he dado cuenta de que algunas veces el npm se cuelga, por lo que me detengo (a veces con fuerza) cntlm y lo reinicio.


Para cualquiera que tenga problemas con un firewall corporativo, así como problemas con SSL (no se puede obtener el certificado de emisor local), aquí hay algunos pasos que puede intentar:

Olvídate de SSL

Si no está preocupado por SSL, puede seguir los consejos de muchos colaboradores anteriores configurando sus proxies y cambiando el registro a la versión no segura:

npm config set proxy http://username:password@proxyname:port npm config set https-proxy http://username:password@proxyname:port npm config set registry http://registry.npmjs.org/

Un rápido "error" aquí, mis credenciales de proxy son las mismas para las solicitudes seguras y no seguras (observe cómo dejé mi protocolo como http: // para la configuración https-proxy ). Esto puede ser lo mismo para ti, y puede que no.

Quiero mantener SSL

Si desea mantener SSL, y no desea usar strict-ssl=false , entonces tiene más trabajo por hacer. En mi caso, estoy detrás de un firewall corporativo y estamos utilizando certificados autofirmados, por lo que recibo el error de unable to get local issuer certificate . Si está en el mismo bote que yo, tendrá que configurar la opción cafile= en el archivo de configuración npm. En primer lugar, debe crear un archivo PEM que contenga información sobre sus certificados autofirmados. Si no sabe cómo hacerlo, aquí hay instrucciones para un entorno de Windows sin utilizar software de terceros:

Necesitamos indicar explícitamente qué certificados se deben confiar porque estamos usando certificados de autofirma. Para mi ejemplo, navegué a www.google.com usando Chrome para poder obtener los certificados.

En Chrome, vaya a Inspeccionar -> Seguridad -> Ver certificado. Verá todos los certificados que permiten la conexión SSL. Observe cómo estos certificados son autofirmados. La parte borrosa es mi compañía, y no somos una Autoridad Certificada. Puede exportar la ruta completa del certificado como un archivo P7B, o puede exportar los certificados individualmente como archivos CER (codificación base64). Exportar la ruta completa como P7B no le sirve de mucho porque a su vez tendrá que abrir este archivo en un administrador de certificados y exportar como archivos CER individuales de todos modos. En Windows, al hacer doble clic en el archivo P7B se abrirá la aplicación Certificate Manager.

Exportar como CER (Base 64) es realmente un archivo de texto en el siguiente formato:

-----BEGIN CERTIFICATE----- MIIGqzCCBZOgAwIBAgITIwAAABWhFPjwukYhTAADAAAAFTANBgkqhkiG9w0BAQUF ADBFMRMwEQYKCZImiZPyLGQBGRYDY29tMRYwFAYKCZImiZPyLGQBGRYGaXJ2aW5n b0pvCkNmjWzaNNUg2hYET+pP5nP75aRu+kPRl9UnlQ....rest of certificate... -----END CERTIFICATE-----

Para crear nuestro archivo PEM, simplemente necesitamos apilar estos certificados uno encima de otro en un solo archivo y cambiar la extensión a .pem. Usé bloc de notas para hacer esto.

Apila los certificados en orden inverso desde la ruta del certificado. Así que arriba, comenzaría con * .google.com y luego pegaría Websense debajo de él, luego emitiría CA 1, etc. De esta forma, los certificados se analizarían desde la parte superior hasta la inferior en busca de la CA raíz apropiada. Simplemente incluir la Root CA no funcionará, pero tampoco es necesario que incluya todos los certificados. Desde la ruta anterior, solo necesito incluir los certificados que vienen antes del certificado de Websense (Emisión CA 1, Política CA, Root CA).

Una vez que estos certificados autofirmados se guardan en un archivo PEM, estamos listos para instruir a npm para que use estos certificados como nuestra CA de confianza. Simplemente configura el archivo de configuración y deberías ir:

npm config set cafile "C:/yourcerts.pem"

Ahora, con sus proxies establecidos (http y https), y el registro establecido en https://registry.npmjs.org , debería poder instalar paquetes detrás de un firewall corporativo con certificados autofirmados sin anular la configuración strict-ssl .


Prueba esto, establece el proxy en npm de la siguiente manera

npm config set proxy "http://<user-name>:<password>@<proxy-url>:<port>" npm config set https-proxy "http://<user-name>:<password>@<proxy-url>:<port>" npm config set strict-ssl false npm config set registry "http://registry.npmjs.org/"


Prueba esto, fue lo único que funcionó para mí:

npm --proxy http: //: @proxyhost: --https-proxy http: //: @proxyhost: --strict-ssl instalación falsa -g paquete

Preste atención a la opción --strict-ssl false

Buena suerte.


Puede verificar Fiddler si NPM está dando error de Autenticación. Es fácil de instalar y configurar. Establezca la regla de Fiddler para que se autentique automáticamente. En .npmrc configure estas propiedades

registry=http://registry.npmjs.org proxy=http://127.0.0.1:8888 https-proxy=http://127.0.0.1:8888 http-proxy=http://127.0.0.1:8888 strict-ssl=false

Funcionó para mí :)


Resolví este problema de esta manera:

1) Ejecuto este comando:

npm config set strict-ssl false

2) Luego configure npm para que se ejecute con http, en lugar de https:

npm config set registry "http://registry.npmjs.org/"

3) Luego instala tu paquete

npm install <package name>


Si está detrás de una red corporativa con proxy, acabo de utilizar una herramienta proxy ntlm y utilicé el puerto y el proxy provistos por ntlm, por instinto utilicé esta configuración:

strict-ssl=false proxy=http://localhost:3125

Espero que esto ayude.


Sistema operativo: Windows 7

Pasos que funcionaron para mí:

  1. npm config get proxy
  2. npm config get https-proxy

  3. Comentarios: ejecuté este comando para conocer mi configuración proxy
    npm config rm proxy

  4. npm config rm https-proxy
  5. npm config set registry=http://registry.npmjs.org/
  6. npm install

Tuve un problema similar e intenté todas las soluciones alternativas anteriores, pero ninguna de ellas me funcionó (estaba usando caracteres especiales (como el símbolo ''@'') en mi contraseña y también necesitaba agregar un nombre de dominio).

Aparte de eso, estaba un poco aprensivo de agregar mi contraseña como texto sin formato. Resultó que la solución más fácil para superar todos estos desafíos era utilizar algún tipo de proxy inverso (como Fiddler).

Ya he detallado los pasos de configuración en this respuesta en SO.


Use el comando a continuación en cmd o GIT Bash u otra solicitud

$ npm config set proxy "http://192.168.1.101:4128" $ npm config set https-proxy "http://192.168.1.101:4128"

donde 192.168.1.101 es proxy ip y 4128 es puerto. cambiar de acuerdo a su configuración de proxy.