Issue metadata
Sign in to add a comment
|
Fails to load with ERR_SSL_VERSION_INTERFERENCE error on localhost with self-signed certificate
Reported by
e...@base10creations.com,
Oct 29
|
||||||||||||||||||||||
Issue descriptionUserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36 Example URL: Steps to reproduce the problem: 1. Create self-signed certificate 2. Install and run local server with certificate What is the expected behavior? Should load What went wrong? When trying to access https://localhost:3000 I receive an error "ERR_SSL_VERSION_INTERFERENCE". Did this work before? Yes 69 Chrome version: 70.0.3538.77 Channel: stable OS Version: OS X 10.12.6 Flash Version: Other browsers tested: Safari Version 12.0 (12606.2.11): OK Firefox 63.0: OK Chrome Canary Version 72.0.3595.0 (Official Build) canary (64-bit): OK Chrome Version 70.0.3538.77 (Official Build) (64-bit): FAIL System Configuration: Mac OS X 10.12.6 on a MacBook Pro Puma console log when attempting to access via Chrome 70: SSL error, peer: 127.0.0.1, peer cert: , #<Puma::MiniSSL::SSLError: OpenSSL error: error:141F7065:SSL routines:final_key_share:no suitable key share - 337604709>
,
Oct 30
,
Oct 30
Can you please provide details about your 'puma' console log? Given that it mentions OpenSSL, what version of Puma, MiniSSL, and OpenSSL are you running?
,
Oct 30
Going by the OpenSSL error, it seems that OpenSSL complains your server has no ECDH curves in common with Chrome (we offer X25519, P-256, and P-384). In the NetLog, your TLS 1.2 connection is negotiating the obsolete TLS_RSA_WITH_AES_256_GCM_SHA384, rather than TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384. Thus it looks like your server is not configured to use a supported ECDH curve. This is recoverable in TLS 1.2 (at the cost of using less secure ciphers), but mandatory in TLS 1.3. OpenSSL's defaults should include all of X25519, P-256, and P-384 (X25519 is recommended), so I'm guessing you or some other software you're using (Puma?) has disabled them for some reason.
,
Nov 1
Thank you for providing more feedback. Adding the requester to the cc list. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Nov 1
I suspected that maybe creating the self-signed certificate with `OpenSSL 0.9.8zh 14 Jan 2016` (which is the default for macOS 10.12) may have been the issue, however, after setting up a new dev environment in macOS 10.14, and generating a new certificate with `LibreSSL 2.6.4` (which is the default for macOS 10.14), I sill am running into the same issue. I've also added an issue in the puma repo: https://github.com/puma/puma/issues/1670
,
Nov 1
Looks like the issue is this line here: https://github.com/puma/puma/blob/72882f2319e65b371e1458069723279b3196a220/ext/puma_http11/mini_ssl.c#L193 P-521 is not a very common curve. It's not supported by Chrome or Edge. The immediate fix would be to use NID_X9_62_prime256v1 (P-256) instead, which is where most hardening work is focused. But OpenSSL also has a fine set of defaults in 1.1.0, and an API to negotiate multiple curves. 1.0.2's defaults are a little large, but also fine. Thus, something like this may be better: #if OPENSSL_VERSION_NUMBER < 0x10002000L // Remove this case if OpenSSL 1.0.1 (now EOL) support is no // longer needed. EC_KEY *ecdh = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1); if (ecdh) { SSL_CTX_set_tmp_ecdh(ctx, ecdh); EC_KEY_free(ecdh); } #elif OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) // Prior to OpenSSL 1.1.0, servers must manually enable server-side ECDH // negotiation. SSL_CTX_set_ecdh_auto(ctx, 1); #endif
,
Nov 2
As per comment #0, This issue seems to be related to network specific issue.Hence, removing Needs-Bisect label and adding TE-NeedsTriageHelp as this is already being investigated. Thanks..!
,
Nov 2
Closing this. It's a problem with the server software. |
|||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||
Comment 1 by krajshree@chromium.org
, Oct 30