Sorry, I'm not really sure what's going on here. Just to test, have you
tried loading the cert temporarily without using autocert?

You probably need to setup a system to reproduce this and get more info. I
know there have been some issues in the past with WinXP and LetsEncrypt
certs, though I don't know if it's related as those caused invalid
certificate errors.

On Tue, Feb 7, 2017 at 7:01 AM, Alexandr Emelin <frv...@gmail.com> wrote:

> Copied wrong line from Heroku proxy report, here is the correct one:
>
> Chrome 49 / XP SP3
> <https://www.ssllabs.com/ssltest/viewClient.html?name=Chrome&version=49&platform=XP%20SP3&key=136>
>  RSA
> 2048 (SHA256)
> <https://www.ssllabs.com/ssltest/analyze.html?d=centrifugo.herokuapp.com#3605008a4b977a443f4f14e3c072d362c55475e7797b46554cc3088f8cbfa11b>
>    TLS 1.2 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256   ECDH secp256r1  FS
>
> вторник, 7 февраля 2017 г., 14:59:42 UTC+3 пользователь Alexandr Emelin
> написал:
>
>> James, thanks for response. I am using go1.7.5 linux/amd64
>>
>> I have no that client available too - it was originally seen in
>> production logs, and now I rely only on SSLLabs handshake emulation feature
>> that has that Chrome 49 SP3 client in list.
>>
>> Here is what SSLLabs shows for that client when application behind Heroku
>> proxy:
>>
>> Firefox 49 / XP SP3
>> <https://www.ssllabs.com/ssltest/viewClient.html?name=Firefox&version=49&platform=XP%20SP3&key=137>
>>  RSA
>> 2048 (SHA256)
>> <https://www.ssllabs.com/ssltest/analyze.html?d=centrifugo.herokuapp.com#3605008a4b977a443f4f14e3c072d362c55475e7797b46554cc3088f8cbfa11b>
>>    TLS 1.2 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256   ECDH secp256r1  FS
>>
>> For Go I used both examples from https://gist.github.com/FZambi
>> a/b51fa33ea4ec78caa7722299da5ae09e - one with default config, and one
>> with all available cipher suites set in TLSConfig and
>> PreferServerCipherSuites option. Both examples use autocert (Let's Encrypt)
>> to get HTTPS certificate. Output of SSLLabs in both cases is:
>>
>> Chrome 49 / XP SP3
>> <https://www.ssllabs.com/ssltest/viewClient.html?name=Chrome&version=49&platform=XP%20SP3&key=136>
>>  Server
>> sent fatal alert: handshake_failure
>>
>> And no cipher suite supported by both client and server in logs for this
>> handshake.
>>
>> понедельник, 6 февраля 2017 г., 17:15:04 UTC+3 пользователь James Bardin
>> написал:
>>>
>>>
>>> What cipher quite is negotiated when you connect to the Heroku proxy?
>>>
>>> What version of Go are you using on the server, and are you using the
>>> default tls.Config?
>>>
>>> I don't have that client directly available to test with, but does your
>>> particular client show the expected information when you visit
>>> https://www.ssllabs.com/ssltest/viewMyClient.html?
>>>
>>>
>>> On Sunday, February 5, 2017 at 3:44:47 AM UTC-5, Alexandr Emelin wrote:
>>>>
>>>> When using builtin TLS for http/websocket server I noticed that
>>>> handshakes from some old browser clients fail. The reason why I find this
>>>> strange is that other TLS implementations work with those connections
>>>> without any problems. I used ssllabs.com/ssltest/
>>>> <https://www.ssllabs.com/ssltest/> to emulate handshakes.
>>>>
>>>> To be more specific: clients using Chrome 49 on Windows XP SP3 can't
>>>> establish secure connection with my Go server. When I use Heroku reverse
>>>> proxy in front of the app - connection succesfully established using TLS
>>>> 1.2. In case of Go I see "*tls: no cipher suite supported by both
>>>> client and server*" message in server log.
>>>>
>>>> I investigated this a bit and found that actually client and server
>>>> have many cipher suites in common but none of them set in
>>>> setCipherSuite
>>>> <https://github.com/golang/go/blob/81038d2e2b588f9df45d20a2ca0be446b0e421b2/src/crypto/tls/handshake_server.go#L770>
>>>> function. Here is list of supported and preference suites:
>>>>
>>>> Supported: []uint16{0xc02f, 0xcca8, 0xcc13, 0xc014, 0xc013, 0x9c, 0x35, 
>>>> 0x2f, 0xa}
>>>> Preference: []uint16{0x5600, 0xc02f, 0xc02b, 0xc030, 0xc02c, 0xc011, 
>>>> 0xc007, 0xc013, 0xc009, 0xc014, 0xc00a, 0x9c, 0x9d, 0x5, 0x2f, 0x35, 
>>>> 0xc012, 0xa}
>>>>
>>>>
>>>> They are all rejected by this code
>>>> <https://github.com/golang/go/blob/81038d2e2b588f9df45d20a2ca0be446b0e421b2/src/crypto/tls/handshake_server.go#L784>
>>>>  (some
>>>> because there were no rsaSignOk set, some because there was no
>>>> rsaDecryptOk set).
>>>>
>>>> trying 0xc02f for version 0x303
>>>> reason rejected: !rsaSignOk
>>>>
>>>> trying 0xc013 for version 0x303
>>>> reason rejected: !rsaSignOk
>>>>
>>>> trying 0xc014 for version 0x303
>>>> reason rejected: !rsaSignOk
>>>>
>>>> trying 0x9c for version 0x303
>>>> reason rejected: !rsaDecryptOk
>>>>
>>>> trying 0x2f for version 0x303
>>>> reason rejected: !rsaDecryptOk
>>>>
>>>> trying 0x35 for version 0x303
>>>> reason rejected: !rsaDecryptOk
>>>>
>>>> trying 0xa for version 0x303
>>>> reason rejected: !rsaDecryptOk
>>>>
>>>>
>>>> I am not skilled in TLS area so looking for help – what's going on
>>>> here, why Go implementation does not support connections supported by other
>>>> TLS termination proxies?
>>>>
>>>> --
> You received this message because you are subscribed to a topic in the
> Google Groups "golang-nuts" group.
> To unsubscribe from this topic, visit https://groups.google.com/d/
> topic/golang-nuts/neu_jKq9pYk/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> golang-nuts+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to