44

Emacs is able to access the Internet with packages such as url.el or the W3 web browser.

Also, the Emacs Lisp Package Archive is heavily dependent on package url.el.

Now, how do I configure Emacs to use my HTTP proxy to connect to the Internet in general?

Bonus points for any help with ELPA behind a proxy.

Yes, I've had problems with HTTP proxies before.

4 Answers 4

55

For w3m, this setting has worked for me:

(setq url-proxy-services '(("no_proxy" . "work\\.com")
                           ("http" . "proxy.work.com:911")))
Sign up to request clarification or add additional context in comments.

7 Comments

@Trey Jackson: What if the proxy requires authentication?
If you require authentication, Emacs (at least 23.x) will ask you for your username and password, provided you have url-proxy-services set.
Is it possible to make Emacs use IE proxy settings?
Just confirmed Emacs 22 will prompt for credentials as well. Thank you @MikeHoss
|
27

I've got authorization working by:

(setq url-proxy-services
   '(("no_proxy" . "^\\(localhost\\|10\\..*\\|192\\.168\\..*\\)")
     ("http" . "proxy.com:8080")
     ("https" . "proxy.com:8080")))

(setq url-http-proxy-basic-auth-storage
    (list (list "proxy.com:8080"
                (cons "Input your LDAP UID !"
                      (base64-encode-string "LOGIN:PASSWORD")))))

Works for Emacs 24.3. It is based on non-public API tricks, so might not work in another Emacs versions...

3 Comments

legend! btw this did not work for emacs 26 on windows, but was fine for 25.3
this worked for me (emacs 25.1.1 mingw from the gnu mirrors). If you're still playing SO -- I believe you want "10\..*" for the local host, you'll match anything that starts 10 with what you got there.
@LevinMagruder Updated!
14

Emacs populates the url-proxy-services variable from the http_proxy, https_proxy and no_proxy environment variables if they are set.

2 Comments

This is totally the way to go
Yes well, it doesn't work in my environment. I think they have some Bluecoat ssl cert also. How is that dealt with?
5

This is a bit old, but I had issues connecting as well. One thing I needed to do is add my certificate to the the gnutls-trustfiles in order to connect.

(with-eval-after-load 'gnutls
    (add-to-list 'gnutls-trustfiles "path/to/cert.crt"))
(setq url-proxy-services
   '(("no_proxy" . "^\\(localhost\\|10\\..*\\|192\\.168\\..*\\)")
     ("http" . "proxy.com:8080")
     ("https" . "proxy.com:8080")))

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.