Agree with Igor, we should be able to configure verification in future, and
this approach seems to be widely used.


On Mon, Jan 29, 2018 at 2:50 PM, Igor Sapego <isap...@gridgain.com> wrote:

> Denis,
>
> For example, there are often such options as "verify-ca" and "verify-full".
> [1-3]
> Moreover, this approach seems more consistent with other solutions and thus
> more familiar to user.
>
> [1] - https://www.postgresql.org/docs/9.1/static/libpq-ssl.html
> [2] -
> https://docs.oracle.com/cd/E17952_01/connector-odbc-en/
> connector-odbc-configuration-connection-parameters.html
> [3] -
> https://dev.mysql.com/doc/connector-odbc/en/connector-
> odbc-configuration-connection-parameters.html
>
> Best Regards,
> Igor
>
> On Sat, Jan 27, 2018 at 2:22 AM, Denis Magda <dma...@apache.org> wrote:
>
> > Igor,
> >
> > Why it might be not enough to have ssl_enabled=[true | false]? Could you
> > give an example since you’ve already did a research?
> >
> > —
> > Denis
> >
> > > On Jan 26, 2018, at 6:08 AM, Igor Sapego <isap...@apache.org> wrote:
> > >
> > > 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