Skip to content

SSL ServerHello should send "session id" #2845

@donv

Description

@donv

Describe the bug

We have set up a Rails server with SSL and peer certificates, and it is working well serving REST requests. However one client requires us to set a SSL session id, and the log shows that the SSL session id sent in the "ServerHello" message from our application is empty. I have done a done a ton of searching, but cannot find how to get Ruby/Rails/Puma/OpenSSL to send a "session id" in the "ServerHello" handshake.

Any help greatly appreciated.

Puma config:

max_threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }
min_threads_count = ENV.fetch("RAILS_MIN_THREADS") { max_threads_count }
threads min_threads_count, max_threads_count
ssl_bind '0.0.0.0', 3000, {
  key: 'key.pem',
  cert: 'cert.pem',
  verify_mode: 'force_peer',
  ca: "cacerts.pem",
}
environment ENV.fetch("RAILS_ENV") { "development" }
pidfile ENV.fetch("PIDFILE") { "tmp/pids/server.pid" }

To Reproduce

Start the server and make a request. The "ServerHello" should contain a non-empty "session id".

Expected behavior

A "ServerHello" handshake response with a session id.

Desktop (please complete the following information):

  • OS: macOS, Linux, and Windows
  • Puma Version 5.6.2 (ruby 3.1.1-p18)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions