Net::Proxy::Connector::connect_ssl - Create SSL/CONNECT tunnels through HTTP proxies
# sample proxy using Net::Proxy::Connector::tcp # and Net::Proxy::Connector::connect_ssl use Net::Proxy; # listen on localhost:6789 # and proxy to remotehost:9876 through proxy.company.com:8080 # using the given credentials my $proxy = Net::Proxy->new( in => { type => 'tcp', port => '6789' }, out => { type => 'connect_ssl', host => 'remotehost', port => '9876', proxy_host => 'proxy.company.com', proxy_port => '8080', proxy_user => 'jrandom', proxy_pass => 's3kr3t', proxy_agent => 'Mozilla/4.04 (X11; I; SunOS 5.4 sun4m)', }, ); $proxy->register(); Net::Proxy->mainloop();
Net::Proxy::Connecter::connect_ssl is a Net::Proxy::Connector that uses the HTTP CONNECT method to ask the proxy to create a tunnel to an outside server. The data is then encrypted using SSL.
Obviously, you'll need a server that understands SSL (or a proxy using Net::Proxy::Connector::ssl) at the other end.
This connector is only an "out" connector.
In addition to the options listed below, this connector accepts all SSL_... options to IO::Socket::SSL. They are transparently passed through to the appropriate IO::Socket::SSL methods when upgrading the socket to SSL.
SSL_...
Net::Proxy::Connector::connect_ssl accepts the following options:
out
The destination host.
The destination port.
The web proxy name or address.
The web proxy port.
The authentication username for the proxy.
The authentication password for the proxy.
The user-agent string to use when connecting to the proxy.
The Net::Proxy::Connector::connect_ssl connector has an extra method, obtained from Net::Proxy::Connector::ssl:
$connector->upgrade_SSL( $sock )
This method will upgrade a cleartext socket to SSL. If the socket is already in SSL, it will carp().
carp()
Philippe 'BooK' Bruhat, <book@cpan.org>.
<book@cpan.org>
Because Net::Proxy blocks when it tries to connect to itself, it wasn't possible to pass an SSL-encrypted connection through a proxy with a single script: you needed one for the SSL encapsulation, and another one for bypassing the proxy with the CONNECT HTTP method.
CONNECT
See Net::Proxy::Connector::connect and Net::Proxy::Connector::ssl for details.
Copyright 2007-2014 Philippe 'BooK' Bruhat, All Rights Reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Net::Proxy, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Net::Proxy
CPAN shell
perl -MCPAN -e shell install Net::Proxy
For more information on module installation, please visit the detailed CPAN module installation guide.