1
0
Fork 0
mirror of https://github.com/puma/puma.git synced 2022-11-09 13:48:40 -05:00
Commit graph

27 commits

Author SHA1 Message Date
Victor Lowther
29aecf3420 Only set ctx.ca iff there is a params['ca'] to set with.
ctx.ca does not deal well with being set to nil, which will be the case if
verify_mode is none and the ca param was not present in the bind line.

Specifically, you get this backtrace:

<path>/gems/ruby/2.1.0/gems/puma-2.15.0/lib/puma/minissl.rb:138:in `exist?': no implicit conversion of nil into String (TypeError)
    from <path>/gems/ruby/2.1.0/gems/puma-2.15.0/lib/puma/minissl.rb:138:in `ca='
    from <path>/gems/ruby/2.1.0/gems/puma-2.15.0/lib/puma/binder.rb:169:in `block in parse'
    from <path>/gems/ruby/2.1.0/gems/puma-2.15.0/lib/puma/binder.rb:84:in `each'
    from <path>/gems/ruby/2.1.0/gems/puma-2.15.0/lib/puma/binder.rb:84:in `parse'
    from <path>/gems/ruby/2.1.0/gems/puma-2.15.0/lib/puma/runner.rb:119:in `load_and_bind'
    from <path>/gems/ruby/2.1.0/gems/puma-2.15.0/lib/puma/single.rb:79:in `run'
    from <path>/gems/ruby/2.1.0/gems/puma-2.15.0/lib/puma/cli.rb:215:in `run'
    from <path>/gems/ruby/2.1.0/gems/puma-2.15.0/bin/puma:10:in `<top (required)>'
    from <path>/gems/ruby/2.1.0/bin/puma:23:in `load'
    from <path>/gems/ruby/2.1.0/bin/puma:23:in `<main>'
2015-11-06 13:48:23 -06:00
Pete Keen
1c4f5aeefc Allow setting ca without setting a verify mode
The CA setting is how we can include intermediate keys, but the binder won't set it unless you force client certs.
2015-10-07 15:00:16 -04:00
Evan Phoenix
302954190c Make building with SSL support optional 2015-09-18 09:43:51 -07:00
Evan Phoenix
097641274b Fix binds being masked in config files. Fixes #765 2015-08-15 09:55:37 -07:00
Evan Phoenix
a2b02294c8 Remove the default Content-Type: text/plain 2015-07-14 11:45:33 -07:00
Evan Phoenix
537bc21593 Remove rack dependency. Fixes #705
Because frameworks like rails dependent on rack, if puma truly wants to
be able to reload new code and thus new versions of rails, it has to be
able to reload rack as well.

Having a dependency on rack held by puma prevented that from happening
and so that dependency has been removed.
2015-07-14 10:28:59 -07:00
Julian Langschaedel
e8d25b30f3 ssl: Add Client Side Certificate Auth
Add Client Side Certificate Auth feature and handling to puma's MiniSSL. Also exposes SSL errors to puma/apps.

 compatibility notes: MRI only

 shell example:

   puma -b 'ssl://127.0.0.1:9292?key=path_to_key&cert=path_to_cert&ca=path_to_ca&verify_mode=force_peer'

 code example: (examples/client_side_ssl)

    app = proc {|env| p env['puma.peercert']; [200, {}, ["hey"]] }

    events = SSLEvents.new($stdout, $stderr)
    server = Puma::Server.new(app, events)

    admin_context             = Puma::MiniSSL::Context.new
    admin_context.key         = KEY_PATH
    admin_context.cert        = CERT_PATH
    admin_context.ca          = CA_CERT_PATH
    admin_context.verify_mode = Puma::MiniSSL::VERIFY_PEER | Puma::MiniSSL::VERIFY_FAIL_IF_NO_PEER_CERT

    server.add_ssl_listener("0.0.0.0", ADMIN_PORT, admin_context)
    server.min_threads = MIN_THREADS
    server.max_threads = MAX_THREADS
    server.persistent_timeout = IDLE_TIMEOUT
    server.run.join

 additional credits: Andy Alness <andy.alness@gmail.com>
2015-06-06 23:15:00 +02:00
Evan Phoenix
24863bd7e5 Avoid the deprecated 2015-01-20 10:38:09 -08:00
Evan Phoenix
d13903ea51 Advertise HTTPS properly after a hot restart 2015-01-20 10:35:22 -08:00
Evan Phoenix
9fc65acee7 Set a default REMOTE_ADDR to avoid using peeraddr on unix sockets. Fixes #583 2015-01-20 10:34:14 -08:00
Evan Phoenix
db4cb8443d Handle spaces in the path properly. Fixes #622 2015-01-20 10:19:52 -08:00
Evan Phoenix
5f0da667e8 Add mode as an additional bind option to unix sockets. Fixes #630 2015-01-20 10:14:50 -08:00
Gu1
264a9a4e58 Allow binding to ipv6 addresses for ssl URIs
Same fixe as for TCP URIs, introduced in 868671e2bc
2014-11-24 00:59:20 +01:00
Daniel Marcotte
c54807700c Add SSL support for JRuby
- Implement MiniSSL for JRuby

- Modify `Binder` and `MiniSSL::Context` to to accommodate the fact
that Java SSL demands a java keystore rather than a key/cert pair

- Change the MiniSSL native extension interface to take a
`MiniSSL::Context` rather than a key/cert pair so that each extension
can grab keys off the context as appropriate
2014-05-05 14:30:15 -07:00
Evan Phoenix
4b866671dd JRuby raises IOError if the socket is there. Fixes #377 2014-01-25 18:34:12 -08:00
Evan Phoenix
43b2b7342d Expose latency and listen backlog via bind query. Fixes #370 2014-01-25 17:02:32 -08:00
Evan Phoenix
faeceed625 File.exists? => File.exist? 2014-01-25 14:50:40 -08:00
Evan Phoenix
f124bc21cd Add ability to cleanup stale unix sockets 2013-07-04 15:57:49 -07:00
Evan Phoenix
93ed2480d8 Merge pull request #231 from urbaniak/socket-activation
Socket activation
2013-05-31 09:52:12 -07:00
Krzysztof Urbaniak
9b619085ff after socket activation remove LISTEN_FDS and LISTEN_PID environment variables 2013-04-05 01:44:30 +02:00
Krzysztof Urbaniak
32088ec6ed systemd socket activation 2013-04-05 01:41:22 +02:00
ytti
868671e2bc allow binding to IPv6 addresses
this fails, and is standard:
puma -b 'tcp://[2001:6e8:288::a]:9999'
this fails. and is non-standard but potentially acceptable to puma as port is mandatory argument:
puma -b 'tcp://2001:6e8:288:🅰️9999'

commit fixes the first issue, but is ghetto as hell, should be 1.8 .. 2.0 friendly
2013-03-25 11:06:00 +02:00
kazjote
911709fdcf Set Rack run_once to false 2013-03-08 17:57:25 +01:00
Evan Phoenix
963cbfc813 Disable worker processes (jruby, win32) and SSL (jruby)
JRuby has at present too many bugs to do nonblocking SSL properly. Until
MiniSSL has JRuby support, SSL support has to be disabled.
2012-09-10 17:14:35 -07:00
Evan Phoenix
faf7f9916c Merge branch 'minissl' into just-dash-w
Conflicts:
	ext/puma_http11/puma_http11.c
	lib/puma/cli.rb
	lib/puma/server.rb
2012-09-10 08:41:43 -07:00
Evan Phoenix
3c2f091728 Use proper path for unix socket on inheritance 2012-09-09 15:14:56 -07:00
Evan Phoenix
508b235f54 Refactor come parts between normal and cluster mode 2012-08-02 16:03:52 -06:00