-
Notifications
You must be signed in to change notification settings - Fork 3.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
plugins https/ssl options inconsistencies #2151
Comments
I wonder if we shouldn't rename it to |
Or for technologies not using TLS, can we call it |
good point. |
I think I like |
Thinking out loud - Since I'd also like to see, long term, unified security settings for credentials (user/pass, certificates) and trusts (IP lists, certs, etc), but that's outside the scope of this ticket. |
If *_protocol => ['http', 'https’] - logstash-output-elasticsearch-ec2 |
+1 on |
like the @jordansissel option, but we should have a clear note on the tech used for that, cause secure is so vague. |
I like |
Here's my full proposal for unification of the
|
👍 |
👍 |
This is linked to this issue: |
new major version 3.0 is a good opportunity to refactor option name. |
+1 on this, having a uniform syntax and experience would be awesome. Might On Wed, 13 Jan 2016 23:26 Colin Surprenant [email protected] wrote:
|
@ph, thank you for pointing out this issue. I'm not sure whether it would be relevant to copy again the background information I've already written for logstash-plugins/logstash-input-tcp#47. I've also noticed that some plugins (at least Taking a step back, I'm just wondering what the benefits of using an OpenSSL-like approach (via JRuby-OpenSSL) are. Is it to keep some compatibility with the MRI in the long term, or is it just for historical reasons because many libraries used in Logstash were effectively Ruby libraries using Ruby's OpenSSL module? If it's the latter, would a switch to a JSSE approach be worth considering or even possible at all? (I must admit I don't know much about Ruby or JRuby, so I don't know if it would make sense at all.) There could still be ways of using certificates in PEM format using a more JSSE-based approach, with a small additional layer of code. @jordansissel, one of the problems with " |
I agree, though if we discuss terminology, then "SSL" is an incorrect term anyway, since we shouldn't even support SSL v3 or older. I would like to see if we can use reasonable terminology that encourages users to do secure things. For example, many many many folks enable TLS but disable certificate verification (VERIFY_NONE, etc) simply because that makes data flow and then they can stop worrying about it (despite it being insecure). I don't know what the right naming is right now, but I am certain that SSL/TLS nomenclature is basically garbage to most folks and the whole space is very difficult to understand and configure correctly. Let's see if we can make it approachable. |
Yes, I agree. I think the "SSL" broad term is here to stay whether we like it or not: firstly, pretty much all SSL/TLS libraries or tools with SSL/TLS settings use "SSL" to refer to classes, functions or settings that have something to do with the SSL/TLS stack in the broad sense; secondly, some tools use "TLS" to refer to the mechanism of upgrading from plain to SSL/TLS over an existing socket via a STARTTLS-like mechanism. I think we can achieve something approachable by using sensible default values, activated when
What would remain would be options to configure the cert chain + key (or keystore), but there can't be any default value for that anyway (unless a self-signed cert is automatically generated, but that more or less implies the remote party would have to trust that certificate blindly by default, which isn't ideal). Other options that could make sense would be to check for revocation. Since this relies on the JSSE, CRL distribution point and OCSP should be available out of the box (assuming a PKIX trust manager is used, I'm not sure what JRuby-OpenSSL uses) when setting the right system properties. That said, the whole system is far from ideal, so turning in on by default might not be the best option. |
This is my mid term goal, @jordansissel and myself had some discussions how we can improve the situation with SSL/Jruby, I think as we move forward more thing will be written in java to leverage the java standard libraries. The innovations and experiments will probably come from the beats inputs, since this is were I am playing with them and this is also were people want more Like you have seen the Jruby-OpenSSL gives us less flexibility in what we can achieve.
I think we shouldn't do that and require it to be more explicit, in correctly configured system the admin will make sure the trusted CA of the system are the right one. But in the common world I think its safer to ask to a specific files or path. |
Concerning the naming, I think They are basically exposing everything that the golang TLS implementation can offer, but they still provide sane default when nothing is specific and |
Agree this is somewhat an advance feature and in most situation the verify the server is enough. |
Agree. The way beats configure SSL to logstash, or to elasticsearch, or kibana to elasticsearch all the same. Ex https://www.elastic.co/guide/en/beats/filebeat/current/configuring-ssl-logstash.html#configuring-ssl-logstash. Logstash for some reason still only accepts a "keystore" (AFAIK reading the config doc). Very hard for people outside Java developers to understand how that maps to a client SSL key and cert. |
Another item to consider here is the behaviour of compression for plugins that support compression and TLS (e.g. HTTP input and Elasticsearch plugins, kafka). We can either decide to make all plugins behave the same, or have different defaults depending on the plugin and use case. |
We should probably look into using a standard config option for using the
https
/ssl
protocol. I did a little survey and this is what we currently use:I suggest we standardize on ssl:
The text was updated successfully, but these errors were encountered: