Guys,

The SSL for the ODBC is pretty much ready and working, so
here is update on the current state I want to share with you.
And of course, I'd like to to hear your opinion on this one.

First of all, I've checked some discussions about the ssl_mode
approaches in different ODBC drivers and it seems to me that
there is a big chance that simple ssl_enabled=[true|false]
approach is not going to be enough for our users.

So I propose a compromise for now. The compromise is to use
ssl_mode=[require|disable] parameter right now, which is pretty
much as easy to understand as ssl_enabled=[true|false], but
leaves us a possibility to add other modes in future if we need
them.

So the full set of SSL parameters now is the following:
ssl_mode=[require|disable]
ssl_key_file=<path_to_private_key>
ssl_cert_file=<path_to_client_certificate>
ssl_ca_file=<path_to_trusted_certificates>

Thoughts?

Best Regards,
Igor

On Tue, Nov 21, 2017 at 2:01 AM, Denis Magda <dma...@apache.org> wrote:

> This configuration approach looks clearer to me. +1 for it.
>
> —
> Denis
>
> > On Nov 20, 2017, at 12:42 AM, Igor Sapego <isap...@apache.org> wrote:
> >
> > Ok, then how about the following set of options:
> >
> > ssl_enabled=[true|false]
> > ssl_key_file=<path_to_secret_key>
> > ssl_cert_file=<path_to_certificate>
> >
> >
> > Best Regards,
> > Igor
> >
> > On Tue, Nov 14, 2017 at 5:21 PM, Vladimir Ozerov <voze...@gridgain.com>
> > wrote:
> >
> >> I think it would be enough to have a single switch for now.
> >>
> >> On Tue, Nov 7, 2017 at 10:04 PM, Denis Magda <dma...@apache.org> wrote:
> >>
> >>> Igor,
> >>>
> >>> Thanks for the clarification. Please file a ticket if nobody else
> shares
> >> a
> >>> feedback soon.
> >>>
> >>> —
> >>> Denis
> >>>
> >>>> On Nov 7, 2017, at 1:23 AM, Igor Sapego <isap...@apache.org> wrote:
> >>>>
> >>>> Hi Denis,
> >>>>
> >>>>> Could you explain the difference between “allow, prefer and require”
> >>>> modes?
> >>>> allow - Client will first try connecting without SSL, and then
> fallback
> >>> to
> >>>> SSL if it is not allowed to connect without SSL;
> >>>> prefer - Client will first try connecting using SSL, and then fallback
> >> to
> >>>> non-SSL if SSL is not supported by the server;
> >>>> disable - Client will only connect using SSL and return error if
> failed
> >>> to
> >>>> successfully do so.
> >>>>
> >>>>> BTW, do we really need to have the “disable” one? Guess that having
> >>>> ssl_mode set to “disable” will have the same effect as not setting the
> >>>> ssl_mode at all.
> >>>> This is the matter of the default value of the ssl_mode option. The
> way
> >>> you
> >>>> propose it means that you still has "disable" option, it is just is
> not
> >>>> explicit.
> >>>>
> >>>> Best Regards,
> >>>> Igor
> >>>>
> >>>> On Fri, Nov 3, 2017 at 10:35 PM, Denis Magda <dma...@apache.org>
> >> wrote:
> >>>>
> >>>>> Hi Igor,
> >>>>>
> >>>>> Could you explain the difference between “allow, prefer and require”
> >>> modes?
> >>>>>
> >>>>> BTW, do we really need to have the “disable” one? Guess that having
> >>>>> ssl_mode set to “disable” will have the same effect as not setting
> the
> >>>>> ssl_mode at all.
> >>>>>
> >>>>> —
> >>>>> Denis
> >>>>>
> >>>>>> On Nov 3, 2017, at 9:04 AM, Igor Sapego <isap...@apache.org> wrote:
> >>>>>>
> >>>>>> Hi, Igniters,
> >>>>>>
> >>>>>> I'm going to start working on the SSL support for the ODBC
> >>>>>> connection and I need to hear your opinion.
> >>>>>>
> >>>>>> For the client side I'm going to use OpenSSL library [1], which is
> >>>>>> standard de-facto for C/C++ applications. Unfortunately its
> >>>>>> licence is not fully compatible with Apache Licence, so its going
> >>>>>> to require from users to install OpenSSL themselves.
> >>>>>>
> >>>>>> For the driver I'm going to add following options to connection
> >>>>>> string:
> >>>>>> ssl_mode - Determines whether or with what priority a SSL
> >>>>>>  connection will be negotiated with the server. Options
> >>>>>>  here are disable, allow, prefer, require.
> >>>>>> ssl_key_file - Path to the location for the secret key used for the
> >>>>>>  client certificate.
> >>>>>> ssl_cert_file - Path to the file of the client SSL certificate.
> >>>>>>
> >>>>>> If the ssl_mode is not set to "disable" then ODBC driver will
> >>>>>> attempt to find and load OpenSSL library before establishing
> >>>>>> connection.
> >>>>>>
> >>>>>> For the server side there is already SslContextFactory in the
> >>>>>> IgniteConfiguration, which is used by all components to determine
> >>>>>> if the SSL enabled and to figure out connection parameters, so
> >>>>>> I think it's a good idea to just re-use it for the
> >>>>> ClientListenerProcessorю
> >>>>>>
> >>>>>> What do you guys think?
> >>>>>>
> >>>>>> [1] - https://www.openssl.org
> >>>>>>
> >>>>>> Best Regards,
> >>>>>> Igor
> >>>>>
> >>>>>
> >>>
> >>>
> >>
>
>

Reply via email to