class OpenSSL::SSL::Server
inherits Reference
¶
This class wraps another ::Socket::Server
in an SSL layer.
require "socket"
require "openssl"
tcp_server = TCPServer.new(0)
ssl_context = OpenSSL::SSL::Context::Server.new
ssl_context.certificate_chain = "openssl.crt"
ssl_context.private_key = "openssl.key"
ssl_server = OpenSSL::SSL::Server.new(tcp_server, ssl_context)
puts "SSL Server listening on #{tcp_server.local_address}"
while connection = ssl_server.accept?
connection.puts "secure message"
connection.close
end
Included modules
Socket::Server
Class methods¶
.open(wrapped : ::Socket::Server, context : OpenSSL::SSL::Context::Server = OpenSSL::SSL::Context::Server.new, sync_close : Bool = true
¶
(wrapped : ::Socket::Server, context : OpenSSL::SSL::Context::Server = OpenSSL::SSL::Context::Server.new, sync_close : Bool = true
Creates a new SSL server wrapping wrapped and yields it to the block.
context configures the SSL options, see OpenSSL::SSL::Context::Server
for details
The server is closed after the block returns.
.new(wrapped : ::Socket::Server, context : OpenSSL::SSL::Context::Server = OpenSSL::SSL::Context::Server.new, sync_close : Bool = true)
¶
(wrapped : ::Socket::Server, context : OpenSSL::SSL::Context::Server = OpenSSL::SSL::Context::Server.new, sync_close : Bool = true)
Creates a new SSL server wrapping wrapped.
context configures the SSL options, see OpenSSL::SSL::Context::Server
for details
Methods¶
#accept : OpenSSL::SSL::Socket::Server
¶
: OpenSSL::SSL::Socket::Server
Implements ::Socket::Server#accept
.
This method calls @wrapped.accept
and wraps the resulting IO in a SSL socket (OpenSSL::SSL::Socket::Server
) with context
configuration.
#accept? : OpenSSL::SSL::Socket::Server?
¶
: OpenSSL::SSL::Socket::Server?
Implements ::Socket::Server#accept?
.
This method calls @wrapped.accept?
and wraps the resulting IO in a SSL socket (OpenSSL::SSL::Socket::Server
) with context
configuration.
#start_immediately : Bool
¶
: Bool
When true
a call to #accept
will also initiate the SSL handshake.
#start_immediately=(start_immediately : Bool)
¶
(start_immediately : Bool)
When true
a call to #accept
will also initiate the SSL handshake.
#sync_close=(sync_close : Bool)
¶
(sync_close : Bool)
If #sync_close?
is true
, closing this server will
close the wrapped server.
#sync_close? : Bool
¶
: Bool
If #sync_close?
is true
, closing this server will
close the wrapped server.