Sorry for the delay, it would appear we're in distant timezones.
Hmmm, when I initially did this long ago, I had to sub-class SOAP::Transport::HTTP::Daemon but I see that is no longer necessary.
Starting with the HTTP::Daemon server transport example from the SOAP::Lite guide, just pass the normal SSL options (defined in IO::Socket::SSL docs) to the new() call on SOAP::Transport::HTTP::Daemon.
If you don't need peer authentication, the following should work:
->new(
LocalPort => 443,
SSL_server => 1
)
->dispatch_to(...)
IO::Socket::SSL seems to default the remaining options correctly inside HTTP::Daemon.
If you do need peer authentication, start reading about the options (and use of OpenSSL in general) in the docs for IO::Socket::SSL and Net::SSLeay.
If you want any more control over how each request is handled (before being passed to SOAP::Lite), you'll need to sub-class SOAP::Transport::HTTP::Daemon... there are a variety of other benefits to doing so.
-David.
|