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

Use hostname from DSN as default for TLS if tls=true #564

Merged
merged 1 commit into from
Apr 28, 2017

Conversation

dveeden
Copy link
Contributor

@dveeden dveeden commented Mar 31, 2017

Description

There is some code to set the ServerName in the tlsConfig to the hostname from the DSN, but this
seems to be only used if tls is set to something other than true/false/skip-verify.

I think this should also be used if tls is set to true.

I don't think tls=true really works at all with the current code. The current code does work with custom/false/skip-verify. This surprises me and leads me to wonder my understanding of tls=true is correct.

Checklist

  • Code compiles correctly
  • Created tests which fail without the change (if possible)
  • All tests passing
  • Extended the README / documentation, if necessary
    don't think any change is needed
  • Added myself / the copyright holder to the AUTHORS file
    I'm already listed

@dveeden dveeden mentioned this pull request Apr 3, 2017
Copy link
Member

@julienschmidt julienschmidt left a comment

Choose a reason for hiding this comment

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

As far as I remember it used to work correctly with early Go versions but it seems a breaking change was made in the tls package.

@julienschmidt julienschmidt merged commit c775fbc into go-sql-driver:master Apr 28, 2017
@julienschmidt julienschmidt added this to the v1.4 milestone Apr 28, 2017
chrisfarms pushed a commit to alphagov/paas-cf that referenced this pull request Sep 7, 2017
The healthcheck app was updated to use a more recent Go version and the
latest compatible depenencies. The newer Go standard library is stricter
about ensuring that the ServerName field is correctly set for TLS.

The current version of the mysql library does not set the required
`ServerName` when using a connection string with 'tls=true'. A fix has
been already been merged and will be released in the next version (v1.4)
of the go-sql-driver/mysql lib.

See go-sql-driver/mysql#564

To workaround the problem in the meantime, we register a "custom" TLS
config which correctly sets the ServerName.
chrisfarms pushed a commit to alphagov/paas-cf that referenced this pull request Sep 7, 2017
The healthcheck app was updated to use a more recent Go version and the
latest compatible depenencies. The newer Go standard library is stricter
about ensuring that the ServerName field is correctly set for TLS.

The current version of the mysql library does not set the required
`ServerName` when using a connection string with 'tls=true'. A fix has
been already been merged and will be released in the next version (v1.4)
of the go-sql-driver/mysql lib.

See go-sql-driver/mysql#564

To workaround the problem in the meantime, we register a "custom" TLS
config which correctly sets the ServerName.
chrisfarms pushed a commit to alphagov/paas-cf that referenced this pull request Sep 7, 2017
The healthcheck app was updated to use a more recent Go version and the
latest compatible depenencies. The newer Go standard library is stricter
about ensuring that the ServerName field is correctly set for TLS.

The current version of the mysql library does not set the required
`ServerName` when using a connection string with 'tls=true'. A fix has
been already been merged and will be released in the next version (v1.4)
of the go-sql-driver/mysql lib.

See go-sql-driver/mysql#564

To workaround the problem in the meantime, we register a "custom" TLS
config which correctly sets the ServerName.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants