For proxying web requests, like with LWP::UserAgent->proxy(), or lwp-request -p ..., you need to set an environment variable HTTPS_PROXY to your proxy server & port, as in: # PROXY SUPPORT $ENV{HTTPS_PROXY} = 'http://proxy_hostname_or_ip:port'; $ENV{HTTPS_PROXY} = '127.0.0.1:8080'; Use of the HTTPS_PROXY environment variable in this way is compatible with LWP::UserAgent->env_proxy() usage. If we could find the current LWP object executing while in Net::SSL context, then we could support proxy() method too, but it does not seem feasible to do so at this time. Basic auth credentials to the proxy server can be provided this way: # PROXY_BASIC_AUTH $ENV{HTTPS_PROXY_USERNAME} = 'username'; $ENV{HTTPS_PROXY_PASSWORD} = 'password';