http_ssl_plugin.pl -- SSL plugin for HTTP libraries
This module can be loaded next to library(thread_httpd)
and
library(http_open)
to provide secure HTTP (HTTPS) services and client
access.
An example secure server using self-signed certificates can be found in
the <plbase>/doc/packages/examples/ssl/https.pl
, where <plbase> is the
SWI-Prolog installation directory.
- thread_httpd:make_socket_hook(?Port, :OptionsIn, -OptionsOut) is semidet[multifile]
- Hook into http_server/2 to create an SSL server if the option
ssl(SSLOptions)
is provided.
- See also
- - accept_hook/2 handles the corresponding accept
- add_secure_ciphers(+SSLOptions0, -SSLOptions)[private]
- Add ciphers from ssl_secure_ciphers/1 if no ciphers are provided.
- disable_sslv3(+SSLOptions0, -SSLOptions)[private]
- Disable SSLv3, which is considered insecure unless the caller
specifies the allowed versions explicitly, so we assume s/he knows
what s/he is doing.
- thread_httpd:accept_hook(:Goal, +Options) is semidet[multifile]
- Implement the accept for HTTPS connections.
- thread_httpd:discard_client_hook(+Msg)[multifile]
- Handles connections that where accepted during server shutdown.
- http:ssl_server_create_hook(+SSL0, -SSL, +Options) is semidet[multifile]
- Extensible predicate that is called once after creating an HTTPS
server. If this predicate succeeds, SSL is the context that is used
for negotiating new connections. Otherwise, SSL0 is used, which is
the context that was created with the given options.
- See also
- - ssl_context/3 for creating an SSL context
- http:ssl_server_open_client_hook(+SSL0, -SSL, +Options) is semidet[multifile]
- Extensible predicate that is called before each connection that the
server negotiates with a client. If this predicate succeeds, SSL is
the context that is used for the new connection. Otherwise, SSL0 is
used, which is the context that was created when launching the
server.
- See also
- - ssl_context/3 for creating an SSL context
- http:http_protocol_hook(+Scheme, +Parts, +PlainStreamPair, -StreamPair, +Options) is semidet[multifile]
- Hook for http_open/3 to connect to an HTTPS (SSL-based HTTP)
server.
- http:http_connection_over_proxy(+Proxy, +Parts, +HostPort, -StreamPair, +OptionsIn, -OptionsOut)[multifile]
- Facilitate an HTTPS connection via a proxy using HTTP CONNECT.
Note that most proxies will only support this for connecting on
port 443