Net::Proxy::Connector::connect_ssl(3)

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" 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.

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 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.