Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to configure Chocolatey to use a corporate proxy?

I'm having trouble installing Chocolatey packages from behind a corporate proxy. Internet Explorer is correctly configured but I'm having issues getting it to work through PowerShell.

I can use the Web-Client to download pages e.g. Microsoft.com, but ultimately Chocolatey fails to download packages with the prompt

"Please provide proxy credentials:"

which will not accept my domain login as being valid. Sometimes I just get the error

"Exception calling "DownloadFile" with "2" argument(s): "The remote server returned an error: (407) Proxy Authentication Required."

I have two machines - one of them can download the packages fine, and the other gives the errors above, but they both show Direct access (as below):

PS C:\Windows\system32> netsh winhttp import proxy source=ie

Current WinHTTP proxy settings:

    Direct access (no proxy server).


PS C:\Windows\system32> netsh winhttp show proxy

Current WinHTTP proxy settings:

    Direct access (no proxy server).

I'm not too sure what is happening here. Any suggestions?

like image 741
clickcell Avatar asked Dec 14 '15 09:12

clickcell


2 Answers

I had a similar issue except that Chocolately wouldn't install in the first place due to the corporate proxy.

Was able to resolve this based on this blog post...

  • 2016-01-22, Duane Newman, Installing Chocolatey behind a corporate proxy (archived here)

...as follows:

  1. Open an elevated command prompt (Windows key -> Type cmd -> right-click on "Command Prompt" and select "Run as Administrator").
  2. Run the following command: @powershell -NoProfile -ExecutionPolicy Unrestricted -Command "[Net.WebRequest]::DefaultWebProxy.Credentials = [Net.CredentialCache]::DefaultCredentials; iex ((New-Object Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%systemdrive%\chocolatey\bin
  3. This should install Chocolatey without any errors. To verify it has worked, close the command prompt and open another (so the path environment variable change is picked up) and then run the choco command - if all is OK it should now output the Chocolatey version and help text.

Further note for node.js: I did the above after installing Node.js with the option ticked to install the extra tools/requirements including Chocolatey. Was then able to continue the failed installation via Apps & features -> Node.js -> Modify. I then followed the instructions here to configure npm for the corporate proxy.

like image 75
Steve Chambers Avatar answered Nov 03 '22 19:11

Steve Chambers


Chocolatey has proxy instructions at https://github.com/chocolatey/choco/wiki/Proxy-Settings-for-Chocolatey and specifically the section on explicit proxy. Ensure you have the proper version of choco installed for that to work. If that is incorrect, we should fix the documentation/choco to make it correct.

For posterity:

Explicit Proxy Settings

Chocolatey has explicit proxy support starting with 0.9.9.9.

You can simply configure 1 or 3 settings and Chocolatey will use a proxy server. proxy is required and is the location and port of the proxy server. proxyUser and proxyPassword are optional. The values for user/password are only used for credentials when both are present.

choco config set proxy <locationandport>
choco config set proxyUser <username>
choco config set proxyPassword <passwordThatGetsEncryptedInFile>

Example

Running the following commands in 0.9.9.9:

choco config set proxy http://localhost:8888
choco config set proxyUser bob
choco config set proxyPassword 123Sup#rSecur3
like image 26
ferventcoder Avatar answered Nov 03 '22 17:11

ferventcoder