Net::Proxy::Connector::ssl.3pm

Langue: en

Autres versions - même langue

Version: 2009-11-06 (ubuntu - 24/10/10)

Section: 3 (Bibliothèques de fonctions)

NAME

Net::Proxy::Connector::ssl - SSL Net::Proxy connector

DESCRIPTION

"Net::Proxy::Connecter::ssl" is a "Net::Proxy::Connector" that can manage SSL connections (thanks to "IO::Socket::SSL").

By default, this connector creates SSL sockets. You will need to subclass it to create ``smarter'' connectors than can upgrade their connections to SSL.

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

CONNECTOR OPTIONS

The connector accept the following options:

in

host

The listening address. If not given, the default is "localhost".

port

The listening port.

start_cleartext

If true, the connection will start in cleartext. It is possible to upgrade a socket to using SSL with the "upgrade_SSL()" method.

out

host

The listening address. If not given, the default is "localhost".

port

The listening port.

start_cleartext

If true, the connection will start in cleartext. It is possible to upgrade a socket to using SSL with the "upgrade_SSL()" method.

METHODS

The "Net::Proxy::Connector::ssl" connector has an extra method:
upgrade_SSL( $sock )
This method will upgrade a cleartext socket to SSL. If the socket is already in SSL, it will "carp()".

CREATING A SELF-SIGNED CERTIFICATE

I tend to forget this information, and the openssl documentation doesn't make this any clearer, so here are the most basic commands needed to create your own self-signed certificate (courtesy David Morel):
     $ openssl genrsa -out key.pem 1024
     $ openssl req -new -key key.pem -x509 -out cert.pem -days 365
 
 

A certificate is required is you want to run a SSL server or a proxy with a "Net::Proxy::Connector::ssl" as its "in" connector.

Once the key and certificate have been created, you can use them in your parameter list to "Net::Proxy->new()" (they are passed through to "IO::Socket::SSL"):

     Net::Proxy->new(
         {
             in => {
                 host          => '0.0.0.0',
                 port          => 443,
                 SSL_key_file  => 'key.pem',
                 SSL_cert_file => 'cert.pem',
             },
             out => { type => 'tcp', port => '80' }
         }
     );
 
 

AUTHOR

Philippe 'BooK' Bruhat, "<book@cpan.org>". Copyright 2006 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.