Skip to content

rgw: add ssl support to beast frontend#20464

Merged
cbodley merged 4 commits intoceph:masterfrom
cbodley:wip-rgw-beast-ssl
Apr 6, 2018
Merged

rgw: add ssl support to beast frontend#20464
cbodley merged 4 commits intoceph:masterfrom
cbodley:wip-rgw-beast-ssl

Conversation

@cbodley
Copy link
Copy Markdown
Contributor

@cbodley cbodley commented Feb 16, 2018

adds frontend options ssl_certificate, ssl_private_key, ssl_port, ssl_endpoint

Fixes: http://tracker.ceph.com/issues/22832

(depends on one refactoring commit from #20449)

TODO:

@cbodley cbodley force-pushed the wip-rgw-beast-ssl branch from b6caa29 to 1ddaee3 Compare March 1, 2018 21:29
@cbodley cbodley force-pushed the wip-rgw-beast-ssl branch 2 times, most recently from abf1d27 to 2ed8e76 Compare March 21, 2018 20:17
@cbodley cbodley force-pushed the wip-rgw-beast-ssl branch from 2ed8e76 to ea49882 Compare March 27, 2018 15:36
const bool have_cert = cert != config.end();
if (have_cert) {
// only initialize the ssl context if it's going to be used
ssl_context = boost::in_place(ssl::context::tls);
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

use of ssl::context::tls here disables the ssl v2 and v3 protocols. our s3tests currently pin the python requests library at 0.14.0, which can only do up to ssl v3. this causes some of the s3tests to fail against beast with ssl handshake failed: wrong version number errors. fixed in ceph/s3-tests#217

cbodley added 4 commits April 5, 2018 15:30
remove ClientIO's dependency on a concrete socket type by moving it into
a derived StreamIO class in rgw_asio_frontend.cc

Signed-off-by: Casey Bodley <cbodley@redhat.com>
adds frontend options ssl_certificate, ssl_private_key, ssl_port, ssl_endpoint

Fixes: http://tracker.ceph.com/issues/22832

Signed-off-by: Casey Bodley <cbodley@redhat.com>
instead of adding special frontend configs like civetweb_ssl.yaml and
beast_ssl.yaml, added a new proto/ subdirectory for http.yaml and
https.yaml

Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
@cbodley
Copy link
Copy Markdown
Contributor Author

cbodley commented Apr 6, 2018

jenkins test this please

1 similar comment
@cbodley
Copy link
Copy Markdown
Contributor Author

cbodley commented Apr 6, 2018

jenkins test this please

@cbodley
Copy link
Copy Markdown
Contributor Author

cbodley commented Apr 6, 2018

after ceph/s3-tests#217 merged, i cherry-picked to ceph-master but missed one of the commits. so the first teuthology run had some s3test failures before of that

and fixing ceph-master, the rerun was clean. so this one is finally ready!

@cbodley cbodley merged commit 072a9be into ceph:master Apr 6, 2018
@cbodley cbodley deleted the wip-rgw-beast-ssl branch April 6, 2018 13:52
@cbodley
Copy link
Copy Markdown
Contributor Author

cbodley commented Apr 6, 2018

@theanalyst thanks for help with review/testing!

@Kriechi
Copy link
Copy Markdown
Contributor

Kriechi commented Feb 15, 2019

@cbodley is it possible to reload the ssl_certificate without restarting the whole radosgw process?

@cbodley
Copy link
Copy Markdown
Contributor Author

cbodley commented Feb 18, 2019

no @Kriechi, the rgw_frontends config is only parsed once on startup when frontends are initialized

@Kriechi
Copy link
Copy Markdown
Contributor

Kriechi commented Feb 18, 2019

@cbodley civetweb provides such functionality - my impression was that beast is the "new" frontend and civetweb will be phased out? If so, I think not having a cert reload without killing the process is a regression.

I tried to look at the beast source code to find something in this area - but didn't find anything useful so far.

@cbodley
Copy link
Copy Markdown
Contributor Author

cbodley commented Feb 18, 2019

can you explain how to accomplish that with civetweb in rgw? i hadn't seen any mechanism in radosgw to do it

@mattbenjamin
Copy link
Copy Markdown
Contributor

@Kriechi could you create a tracker ticket for this issue (as this is merged)?

Matt

@Kriechi
Copy link
Copy Markdown
Contributor

Kriechi commented Feb 18, 2019

@cbodley I'm currently using this flag in the rgw frontend config section of ceph.conf:
https://github.com/civetweb/civetweb/blob/master/docs/UserManual.md#ssl_short_trust-no

@briend
Copy link
Copy Markdown

briend commented Apr 12, 2024

@mattbenjamin I made a ceph tracker issue here regarding reloading ssl certs: https://tracker.ceph.com/issues/65470

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants