NAME

Net::Proxy::Connector::connect_ssl - Create SSL/CONNECT tunnels through HTTP proxies

SYNOPSIS

# 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();

DESCRIPTION

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.

CONNECTOR OPTIONS

Net::Proxy::Connector::connect_ssl accepts the following options:

out

host

The destination host.

port

The destination port.

proxy_host

The web proxy name or address.

proxy_port

The web proxy port.

proxy_user

The authentication username for the proxy.

proxy_pass

The authentication password for the proxy.

proxy_agent

The user-agent string to use when connecting to the proxy.

METHODS

The Net::Proxy::Connector::connect_ssl connector has an extra method, obtained from Net::Proxy::Connector::ssl:

upgrade_SSL

$connector->upgrade_SSL( $sock )

This method will upgrade a cleartext socket to SSL. If the socket is already in SSL, it will carp().

AUTHOR

Philippe 'BooK' Bruhat, <book@cpan.org>.

HISTORY

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.

See Net::Proxy::Connector::connect and Net::Proxy::Connector::ssl for details.

COPYRIGHT

Copyright 2007-2014 Philippe 'BooK' Bruhat, All Rights Reserved.

LICENSE

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.