Skip to content
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

Support encrypted binary protocol (Tarantool Enterprise) #217

Closed
Totktonada opened this issue Apr 4, 2022 · 1 comment · Fixed by #220
Closed

Support encrypted binary protocol (Tarantool Enterprise) #217

Totktonada opened this issue Apr 4, 2022 · 1 comment · Fixed by #220
Assignees

Comments

@Totktonada
Copy link
Member

Totktonada commented Apr 4, 2022

The connector should be able to connect to Tarantool Enterprise using the encrypted protocol.

Related: tarantool/go-tarantool#155.

@oleg-jukovec
Copy link
Contributor

oleg-jukovec commented Jun 3, 2022

Really well that a ssl module from the python standart library uses OpenSSL. But we need to keep in mind that Python can be built without it (and handle it properly).

oleg-jukovec added a commit that referenced this issue Jun 7, 2022
The patch adds support for using SSL to encrypt the client-server
communications [1].

1. https://www.tarantool.io/en/enterprise_doc/security/#enterprise-iproto-encryption

Closes #217
oleg-jukovec added a commit that referenced this issue Jun 7, 2022
The patch adds support for using SSL to encrypt the client-server
communications [1].

1. https://www.tarantool.io/en/enterprise_doc/security/#enterprise-iproto-encryption

Closes #217
oleg-jukovec added a commit that referenced this issue Jun 7, 2022
The patch adds support for using SSL to encrypt the client-server
communications [1].

1. https://www.tarantool.io/en/enterprise_doc/security/#enterprise-iproto-encryption

Closes #217
oleg-jukovec added a commit that referenced this issue Jun 8, 2022
The patch adds support for using SSL to encrypt the client-server
communications [1].

1. https://www.tarantool.io/en/enterprise_doc/security/#enterprise-iproto-encryption

Closes #217
oleg-jukovec added a commit that referenced this issue Jun 8, 2022
The patch adds support for using SSL to encrypt the client-server
communications [1].

1. https://www.tarantool.io/en/enterprise_doc/security/#enterprise-iproto-encryption

Closes #217
oleg-jukovec added a commit that referenced this issue Jun 8, 2022
The patch adds support for using SSL to encrypt the client-server
communications [1].

1. https://www.tarantool.io/en/enterprise_doc/security/#enterprise-iproto-encryption

Part of #217
oleg-jukovec added a commit that referenced this issue Jun 8, 2022
The workflow uses Tarantool Enterprise Edition. It does not run for
outside pull requests by default. Such pull requests may be labeled
with `full-ci`. To avoid security problems, the label must be reset
manually for every run.

Closes #217
oleg-jukovec added a commit that referenced this issue Jun 8, 2022
The patch adds support for using SSL to encrypt the client-server
communications [1].

1. https://www.tarantool.io/en/enterprise_doc/security/#enterprise-iproto-encryption

Part of #217
oleg-jukovec added a commit that referenced this issue Jun 8, 2022
The workflow uses Tarantool Enterprise Edition. It does not run for
outside pull requests by default. Such pull requests may be labeled
with `full-ci`. To avoid security problems, the label must be reset
manually for every run.

Closes #217
oleg-jukovec added a commit that referenced this issue Jun 8, 2022
The patch adds support for using SSL to encrypt the client-server
communications [1].

1. https://www.tarantool.io/en/enterprise_doc/security/#enterprise-iproto-encryption

Part of #217
oleg-jukovec added a commit that referenced this issue Jun 8, 2022
The workflow uses Tarantool Enterprise Edition. It does not run for
outside pull requests by default. Such pull requests may be labeled
with `full-ci`. To avoid security problems, the label must be reset
manually for every run.

Closes #217
oleg-jukovec added a commit that referenced this issue Jun 8, 2022
The workflow uses Tarantool Enterprise Edition. It does not run for
outside pull requests by default. Such pull requests may be labeled
with `full-ci`. To avoid security problems, the label must be reset
manually for every run.

Closes #217
oleg-jukovec added a commit that referenced this issue Jun 16, 2022
The patch adds support for using SSL to encrypt the client-server
communications [1].

1. https://www.tarantool.io/en/enterprise_doc/security/#enterprise-iproto-encryption

Part of #217
oleg-jukovec added a commit that referenced this issue Jun 16, 2022
The workflow uses Tarantool Enterprise Edition. It does not run for
outside pull requests by default. Such pull requests may be labeled
with `full-ci`. To avoid security problems, the label must be reset
manually for every run.

Closes #217
oleg-jukovec added a commit that referenced this issue Jun 16, 2022
The patch adds support for using SSL to encrypt the client-server
communications [1].

1. https://www.tarantool.io/en/enterprise_doc/security/#enterprise-iproto-encryption

Part of #217
oleg-jukovec added a commit that referenced this issue Jun 16, 2022
The workflow uses Tarantool Enterprise Edition. It does not run for
outside pull requests by default. Such pull requests may be labeled
with `full-ci`. To avoid security problems, the label must be reset
manually for every run.

Closes #217
oleg-jukovec added a commit that referenced this issue Jun 16, 2022
The patch adds support for using SSL to encrypt the client-server
communications [1].

1. https://www.tarantool.io/en/enterprise_doc/security/#enterprise-iproto-encryption

Part of #217
oleg-jukovec added a commit that referenced this issue Jun 16, 2022
The workflow uses Tarantool Enterprise Edition. It does not run for
outside pull requests by default. Such pull requests may be labeled
with `full-ci`. To avoid security problems, the label must be reset
manually for every run.

Closes #217
oleg-jukovec added a commit that referenced this issue Jun 16, 2022
The patch adds support for using SSL to encrypt the client-server
communications [1].

1. https://www.tarantool.io/en/enterprise_doc/security/#enterprise-iproto-encryption

Part of #217
oleg-jukovec added a commit that referenced this issue Jun 16, 2022
The workflow uses Tarantool Enterprise Edition. It does not run for
outside pull requests by default. Such pull requests may be labeled
with `full-ci`. To avoid security problems, the label must be reset
manually for every run.

Closes #217
oleg-jukovec added a commit that referenced this issue Jun 16, 2022
The patch adds support for using SSL to encrypt the client-server
communications [1].

1. https://www.tarantool.io/en/enterprise_doc/security/#enterprise-iproto-encryption

Part of #217
oleg-jukovec added a commit that referenced this issue Jun 16, 2022
The workflow uses Tarantool Enterprise Edition. It does not run for
outside pull requests by default. Such pull requests may be labeled
with `full-ci`. To avoid security problems, the label must be reset
manually for every run.

Closes #217
oleg-jukovec added a commit that referenced this issue Jun 17, 2022
The patch adds support for using SSL to encrypt the client-server
communications [1].

1. https://www.tarantool.io/en/enterprise_doc/security/#enterprise-iproto-encryption

Part of #217
oleg-jukovec added a commit that referenced this issue Jun 17, 2022
The workflow uses Tarantool Enterprise Edition. It does not run for
outside pull requests by default. Such pull requests may be labeled
with `full-ci`. To avoid security problems, the label must be reset
manually for every run.

Closes #217
oleg-jukovec added a commit that referenced this issue Jun 17, 2022
The workflow uses Tarantool Enterprise Edition. It does not run for
outside pull requests by default. Such pull requests may be labeled
with `full-ci`. To avoid security problems, the label must be reset
manually for every run.

Closes #217
oleg-jukovec added a commit that referenced this issue Jun 17, 2022
The patch adds support for using SSL to encrypt the client-server
communications [1].

1. https://www.tarantool.io/en/enterprise_doc/security/#enterprise-iproto-encryption

Part of #217
oleg-jukovec added a commit that referenced this issue Jun 17, 2022
The workflow uses Tarantool Enterprise Edition. It does not run for
outside pull requests by default. Such pull requests may be labeled
with `full-ci`. To avoid security problems, the label must be reset
manually for every run.

Closes #217
oleg-jukovec added a commit that referenced this issue Jun 17, 2022
The workflow uses Tarantool Enterprise Edition. It does not run for
outside pull requests by default. Such pull requests may be labeled
with `full-ci`. To avoid security problems, the label must be reset
manually for every run.

Closes #217
oleg-jukovec added a commit that referenced this issue Jun 17, 2022
The workflow uses Tarantool Enterprise Edition. It does not run for
outside pull requests by default. Such pull requests may be labeled
with `full-ci`. To avoid security problems, the label must be reset
manually for every run.

Closes #217
DifferentialOrange pushed a commit that referenced this issue Jun 20, 2022
The patch adds support for using SSL to encrypt the client-server
communications [1].

1. https://www.tarantool.io/en/enterprise_doc/security/#enterprise-iproto-encryption

Part of #217
DifferentialOrange pushed a commit that referenced this issue Jun 20, 2022
The workflow uses Tarantool Enterprise Edition. It does not run for
outside pull requests by default. Such pull requests may be labeled
with `full-ci`. To avoid security problems, the label must be reset
manually for every run.

Closes #217
DifferentialOrange added a commit that referenced this issue Jun 20, 2022
Overview

    This release features SSL support. To use SSL, pass SSL parameters
    on connect:

        con = tarantool.Connection(
            host, port,
            user=user,
            password=pass,
            transport="ssl",
            ssl_key_file=client_key_file,
            ssl_cert_file=client_cert_file,
            ssl_ca_file=client_ca_file,
            ssl_ciphers=client_ciphers)

     ConnectionPool and MeshConnection also support these parameters.

     See Tarantool Enterprise Edition manual for details [1].

Breaking changes

    There are no breaking changes in the release.

New features

    * SSL support (PR #220, #217).

Testing

    * Tarantool Enterprise testing workflow on GitHub actions (PR #220).
DifferentialOrange added a commit that referenced this issue Jun 20, 2022
Overview

    This release features SSL support. To use SSL, pass SSL parameters
    on connect:

        con = tarantool.Connection(
            host, port,
            user=user,
            password=pass,
            transport="ssl",
            ssl_key_file=client_key_file,
            ssl_cert_file=client_cert_file,
            ssl_ca_file=client_ca_file,
            ssl_ciphers=client_ciphers)

    ConnectionPool and MeshConnection also support these parameters.

    See Tarantool Enterprise Edition manual for details [1].

Breaking changes

    There are no breaking changes in the release.

New features

    * SSL support (PR #220, #217).

Testing

    * Tarantool Enterprise testing workflow on GitHub actions (PR #220).
DifferentialOrange added a commit that referenced this issue Jun 20, 2022
Overview

    This release features SSL support. To use SSL, pass SSL parameters
    on connect:

        con = tarantool.Connection(
            host, port,
            user=user,
            password=pass,
            transport="ssl",
            ssl_key_file=client_key_file,
            ssl_cert_file=client_cert_file,
            ssl_ca_file=client_ca_file,
            ssl_ciphers=client_ciphers)

    ConnectionPool and MeshConnection also support these parameters.

    See Tarantool Enterprise Edition manual for details [1].

    1. https://www.tarantool.io/en/enterprise_doc/security/#enterprise-iproto-encryption

Breaking changes

    There are no breaking changes in the release.

New features

    * SSL support (PR #220, #217).

Testing

    * Tarantool Enterprise testing workflow on GitHub actions (PR #220).
DifferentialOrange added a commit that referenced this issue Jun 20, 2022
Overview

    This release features SSL support.

    To use encrypted connection with Tarantool Enterprise Edition
    instance, pass "ssl" `transport` parameter on connect:

        con = tarantool.Connection(
            host, port,
            user=user,
            password=pass,
            transport="ssl")

    If server uses trusted certificate authorities (CA) file, you must
    set private SSL key file with `ssl_key_file` parameter and SSL
    certificate file with `ssl_cert_file` parameter. If server not
    uses CA file, these parameters are optional.

        con = tarantool.Connection(
            host, port,
            user=user,
            password=password,
            transport="ssl",
            ssl_key_file=client_key_file,
            ssl_cert_file=client_cert_file)

    To verify the server, set client trusted certificate
    authorities (CA) file with `ssl_ca_file` parameter:

        con = tarantool.Connection(
            host, port,
            user=user,
            password=password,
            transport="ssl",
            ssl_ca_file=client_ca_file)

    To set SSL ciphers, set them with `ssl_ciphers` parameter as
    a colon-separated (:) string:

        con = tarantool.Connection(
            host, port,
            user=user,
            password=password,
            transport="ssl",
            ssl_ciphers=client_ssl_ciphers)

    ConnectionPool and MeshConnection also support these parameters.

        mesh = tarantool.MeshConnection(
            addrs={
                "host": host,
                "post": port,
                "transport": "ssl",
                "ssl_key_file": client_key_file,
                "ssl_cert_file": client_cert_file,
                "ssl_ca_file": client_ca_file,
                "ssl_ciphers": client_ssl_ciphers,
            },
            user=user,
            password=password)

        pool = tarantool.ConnectionPool(
            addrs={
                "host": host,
                "post": port,
                "transport": "ssl",
                "ssl_key_file": client_key_file,
                "ssl_cert_file": client_cert_file,
                "ssl_ca_file": client_ca_file,
                "ssl_ciphers": client_ssl_ciphers,
            },
            user=user,
            password=password)

    See Tarantool Enterprise Edition manual for details [1].

    1. https://www.tarantool.io/en/enterprise_doc/security/#enterprise-iproto-encryption

Breaking changes

    There are no breaking changes in the release.

New features

    * SSL support (PR #220, #217).

Testing

    * Tarantool Enterprise testing workflow on GitHub actions (PR #220).
DifferentialOrange added a commit that referenced this issue Jun 20, 2022
DifferentialOrange added a commit that referenced this issue Jun 20, 2022
Overview

    This release features SSL support.

    To use encrypted connection with Tarantool Enterprise Edition
    instance, pass "ssl" `transport` parameter on connect:

        con = tarantool.Connection(
            host, port,
            user=user,
            password=pass,
            transport="ssl")

    If server uses trusted certificate authorities (CA) file, you must
    set private SSL key file with `ssl_key_file` parameter and SSL
    certificate file with `ssl_cert_file` parameter. If server not
    uses CA file, these parameters are optional.

        con = tarantool.Connection(
            host, port,
            user=user,
            password=password,
            transport="ssl",
            ssl_key_file=client_key_file,
            ssl_cert_file=client_cert_file)

    To verify the server, set client trusted certificate
    authorities (CA) file with `ssl_ca_file` parameter:

        con = tarantool.Connection(
            host, port,
            user=user,
            password=password,
            transport="ssl",
            ssl_ca_file=client_ca_file)

    To set SSL ciphers, set them with `ssl_ciphers` parameter as
    a colon-separated (:) string:

        con = tarantool.Connection(
            host, port,
            user=user,
            password=password,
            transport="ssl",
            ssl_ciphers=client_ssl_ciphers)

    ConnectionPool and MeshConnection also support these parameters.

        mesh = tarantool.MeshConnection(
            addrs={
                "host": host,
                "post": port,
                "transport": "ssl",
                "ssl_key_file": client_key_file,
                "ssl_cert_file": client_cert_file,
                "ssl_ca_file": client_ca_file,
                "ssl_ciphers": client_ssl_ciphers,
            },
            user=user,
            password=password)

        pool = tarantool.ConnectionPool(
            addrs={
                "host": host,
                "post": port,
                "transport": "ssl",
                "ssl_key_file": client_key_file,
                "ssl_cert_file": client_cert_file,
                "ssl_ca_file": client_ca_file,
                "ssl_ciphers": client_ssl_ciphers,
            },
            user=user,
            password=password)

    See Tarantool Enterprise Edition manual for details [1].

    1. https://www.tarantool.io/en/enterprise_doc/security/#enterprise-iproto-encryption

Breaking changes

    There are no breaking changes in the release.

New features

    * SSL support (PR #220, #217).

Testing

    * Tarantool Enterprise testing workflow on GitHub actions (PR #220).
DifferentialOrange added a commit that referenced this issue Jun 20, 2022
Overview

    This release features SSL support.

    To use encrypted connection with Tarantool Enterprise Edition
    instance, pass "ssl" `transport` parameter on connect:

        con = tarantool.Connection(
            host, port,
            user=user,
            password=pass,
            transport="ssl")

    To verify the server, set client trusted certificate
    authorities (CA) file with `ssl_ca_file` parameter:

        con = tarantool.Connection(
            host, port,
            user=user,
            password=password,
            transport="ssl",
            ssl_ca_file=client_ca_file)

    If the server authenticates clients using certificates issued by
    given CA, you must provide private SSL key file with `ssl_key_file`
    parameter and SSL certificate file with `ssl_cert_file` parameter.
    Otherwise, these parameters are optional.

        con = tarantool.Connection(
            host, port,
            user=user,
            password=password,
            transport="ssl",
            ssl_key_file=client_key_file,
            ssl_cert_file=client_cert_file)

    To set SSL ciphers, set them with `ssl_ciphers` parameter as
    a colon-separated (:) string:

        con = tarantool.Connection(
            host, port,
            user=user,
            password=password,
            transport="ssl",
            ssl_ciphers=client_ssl_ciphers)

    ConnectionPool and MeshConnection also support these parameters.

        mesh = tarantool.MeshConnection(
            addrs={
                "host": host,
                "post": port,
                "transport": "ssl",
                "ssl_key_file": client_key_file,
                "ssl_cert_file": client_cert_file,
                "ssl_ca_file": client_ca_file,
                "ssl_ciphers": client_ssl_ciphers,
            },
            user=user,
            password=password)

        pool = tarantool.ConnectionPool(
            addrs={
                "host": host,
                "post": port,
                "transport": "ssl",
                "ssl_key_file": client_key_file,
                "ssl_cert_file": client_cert_file,
                "ssl_ca_file": client_ca_file,
                "ssl_ciphers": client_ssl_ciphers,
            },
            user=user,
            password=password)

    See Tarantool Enterprise Edition manual for details [1].

    1. https://www.tarantool.io/en/enterprise_doc/security/#enterprise-iproto-encryption

Breaking changes

    There are no breaking changes in the release.

New features

    * SSL support (PR #220, #217).

Testing

    * Tarantool Enterprise testing workflow on GitHub actions (PR #220).
DifferentialOrange added a commit that referenced this issue Jun 20, 2022
DifferentialOrange added a commit that referenced this issue Jun 20, 2022
Overview

    This release features SSL support.

    To use encrypted connection with Tarantool Enterprise Edition
    instance, pass "ssl" `transport` parameter on connect:

        con = tarantool.Connection(
            host, port,
            user=user,
            password=pass,
            transport="ssl")

    To verify the server, set client trusted certificate
    authorities (CA) file with `ssl_ca_file` parameter:

        con = tarantool.Connection(
            host, port,
            user=user,
            password=password,
            transport="ssl",
            ssl_ca_file=client_ca_file)

    If the server authenticates clients using certificates issued by
    given CA, you must provide private SSL key file with `ssl_key_file`
    parameter and SSL certificate file with `ssl_cert_file` parameter.
    Otherwise, these parameters are optional.

        con = tarantool.Connection(
            host, port,
            user=user,
            password=password,
            transport="ssl",
            ssl_key_file=client_key_file,
            ssl_cert_file=client_cert_file)

    To set SSL ciphers, set them with `ssl_ciphers` parameter as
    a colon-separated (:) string:

        con = tarantool.Connection(
            host, port,
            user=user,
            password=password,
            transport="ssl",
            ssl_ciphers=client_ssl_ciphers)

    ConnectionPool and MeshConnection also support these parameters.

        mesh = tarantool.MeshConnection(
            addrs={
                "host": host,
                "post": port,
                "transport": "ssl",
                "ssl_key_file": client_key_file,
                "ssl_cert_file": client_cert_file,
                "ssl_ca_file": client_ca_file,
                "ssl_ciphers": client_ssl_ciphers,
            },
            user=user,
            password=password)

        pool = tarantool.ConnectionPool(
            addrs={
                "host": host,
                "post": port,
                "transport": "ssl",
                "ssl_key_file": client_key_file,
                "ssl_cert_file": client_cert_file,
                "ssl_ca_file": client_ca_file,
                "ssl_ciphers": client_ssl_ciphers,
            },
            user=user,
            password=password)

    See Tarantool Enterprise Edition manual for details [1].

    1. https://www.tarantool.io/en/enterprise_doc/security/#enterprise-iproto-encryption

Breaking changes

    There are no breaking changes in the release.

New features

    * SSL support (PR #220, #217).

Testing

    * Tarantool Enterprise testing workflow on GitHub actions (PR #220).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants