class Endpoint
An HTTP-specific endpoint which adds localhost TLS.
Definitions
def ssl_context
The SSL context to use, which invokes Falcon::Endpoint#build_ssl_context
if not otherwise specified.
Signature
-
returns
OpenSSL::SSL::SSLContext
Implementation
def ssl_context
@options[:ssl_context] || build_ssl_context
end
def build_ssl_context(hostname = self.hostname)
Build an appropriate SSL context for the given hostname.
Uses Localhost::Authority
to generate self-signed certficates.
Signature
-
returns
OpenSSL::SSL::SSLContext
Implementation
def build_ssl_context(hostname = self.hostname)
authority = Localhost::Authority.fetch(hostname)
authority.server_context.tap do |context|
context.alpn_select_cb = lambda do |protocols|
if protocols.include? "h2"
return "h2"
elsif protocols.include? "http/1.1"
return "http/1.1"
elsif protocols.include? "http/1.0"
return "http/1.0"
else
return nil
end
end
context.session_id_context = "falcon"
end
end