[openssl-users] Unexpected SSL23_GET_SERVER_HELLO unsupported protocol Error

Welling, Conrad Gerhart CONRAD.GERHART.WELLING at leidos.com
Sat Aug 6 00:46:42 UTC 2016


--- Reformatted and resent ---

I am encountering curl-7.44.0+openssl-1.0.2d (FIPS-capable) TLS session-initialization failures like ...

* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* error:14077102:SSL routines:SSL23_GET_SERVER_HELLO:unsupported protocol

on only ONE (HOSTX) of two 2008 R2 IIS 7.5 HTTPS servers (HOSTX, ROOM40) which are supposed to be configured the same.

I am using

   OpenSSL 1.0.2d-fips 9 Jul 2015

   curl 7.44.0 (i386-pc-win32) libcurl/7.44.0 OpenSSL/1.0.2d
   Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s
   rtsp smb smbs smtp smtps telnet tftp
   Features: AsynchDNS Largefile NTLM SSL

ROOM40 and HOSTX servers run IIS 7.5 or IIS 8.0, and, the values of the keys (SSL 2.0 - TLS 1.2, Client and Server) in the registry branch

   HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols

are the same (see following).  All the OTHER ..\Protocols keys - Ciphers, CipherSuites, Hashes, and KeyExchangeAlgorithms - are the same (all blank).

   SSL 2.0
      Client
         "DisabledByDefault"=dword:00000001
         "Enabled"=dword:00000000
      Server
         <empty>
   SSL 3.0
      Client
         "Enabled"=dword:00000000
      Server
         "Enabled"=dword:00000000
   TLS 1.0   (Does not exist on HOSTX)
      Client
         <empty>
      Server
         <empty>
   TLS 1.1
      Client
         "DisabledByDefault"=dword:00000000
         "Enabled"=dword:00000001
      Server
         "DisabledByDefault"=dword:00000000
         "Enabled"=dword:00000001
   TLS 1.2
      Client
         "Enabled"=dword:00000001
      Server
         "Enabled"=dword:00000001

I've researched "TLS version intolerance", SNI, ALPN and more, but, haven't figured this out yet.
Following are four curl-7.44.0+openssl-1.0.2d (FIPS- capable) attempts to "upload" a file.  The 1st attempt to server ROOM40 succeeds, but the subsequent three attempts to server HOSTX all fail.
Any hints or insights are very much appreciated ...

Note: The following output has been been edited to enhance readability and disguise client and servers.

===============================================================================

==> openssl version
OpenSSL 1.0.2d-fips 9 Jul 2015

==> curl --version
curl 7.44.0 (i386-pc-win32) libcurl/7.44.0 OpenSSL/1.0.2d
Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s
rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS Largefile NTLM SSL

==> REM -----------------------------------------------------------------------
==> REM ATTEMPT TO UPLOAD TO ROOM40 (Successful)
==> REM -----------------------------------------------------------------------

==> %CD%\curl.exe
--verbose -T "stuff.dat"
--tlsv1.2
--ciphers AES128-SHA256:AES256-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DES-CBC3-SHA
--capath ..\certs
--user matahari:18761917 https://ROOM40/datasink/

*   Trying 10.11.51.37...
* Connected to ROOM40 (10.11. 51.37) port 443 (#0)
* ALPN, offering http/1.1
* Cipher selection: AES128-SHA256:AES256-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DES-CBC3-SHA
* successfully set certificate verify locations:
*   CAfile: none
  CApath: ..\certs
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Client hello (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS change cipher, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-SHA256
* ALPN, server did not agree to a protocol
* Server certificate:
*   subject: C=US; ST=CA; L=Los Angeles; O=CID; OU=LA DEV; CN=ROOM40
*   start date: 2014-05-01 15:44:59 GMT
*   expire date: 2018-02-05 22:10:46 GMT
*   common name: ROOM40 (matched)
*   issuer: CN=DISRAELI
*   SSL certificate verify ok.
* Server auth using Basic with user 'matahari'
> PUT /datasink/stuff.dat HTTP/1.1
> Host: ROOM40
> Authorization: Basic ZnRwd2FsbDoxMzRGa3JlVDk1andfMlE=
> User-Agent: curl/7.44.0
> Accept: */*
> Content-Length: 161
> Expect: 100-continue
>
< HTTP/1.1 100 Continue
* We are completely uploaded and fine
< HTTP/1.1 201 Created
< Location: http://ROOM40/datasink/stuff.dat
< Server: Microsoft-IIS/7.5
< X-Powered-By: ASP.NET
< Date: Thu, 04 Aug 2016 01:31:09 GMT
< Content-Length: 0
<
* Connection #0 to host ROOM40 left intact

==> REM -----------------------------------------------------------------------
==> REM ATTEMPT #1 TO UPLOAD TO HOSTX (Fails)
==> REM -----------------------------------------------------------------------

==> %CD%\curl.exe
--verbose -T "stuff.dat"
--tlsv1.2
--ciphers AES128-SHA256:AES256-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DES-CBC3-SHA
--capath ..\certs
--user TELawrence:18881935 https://hostx.area51.gov/upload/
*   Trying 211.3.150.21...
* Connected to hostx.area51.gov (211.3.150.21) port 443 (#0)
* ALPN, offering http/1.1
* Cipher selection: AES128-SHA256:AES256-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DES-CBC3-SHA
* successfully set certificate verify locations:
*   CAfile: none
  CApath: ..\certs
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* error:14077102:SSL routines:SSL23_GET_SERVER_HELLO:unsupported protocol
* Closing connection 0
curl: (35) error:14077102:SSL routines:SSL23_GET_SERVER_HELLO:unsupported protocol

==> REM -----------------------------------------------------------------------
==> REM ATTEMPT #2 TO UPLOAD TO HOSTX (Fails)
==> REM -----------------------------------------------------------------------

==> %CD%\curl.exe
--verbose -T "stuff.dat"
--tlsv1.2
--ciphers AES128-SHA256:AES256-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
--capath ..\certs
--user TELawrence:18881935 https://hostx.area51.gov/upload/
*   Trying 211.3.150.21...
* Connected to hostx.area51.gov (211.3.150.21) port 443 (#0)
* ALPN, offering http/1.1
* Cipher selection: AES128-SHA256:AES256-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
* successfully set certificate verify locations:
*   CAfile: none
  CApath: ..\certs
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* Unknown SSL protocol error in connection to hostx.area51.gov:443
* Closing connection 0
curl: (35) Unknown SSL protocol error in connection to hostx.area51.gov:443


==> REM -----------------------------------------------------------------------
==> REM ATTEMPT #3 TO UPLOAD TO HOSTX (Fails)
==> REM -----------------------------------------------------------------------

==> %CD%\curl.exe
--verbose -T "stuff.dat"
--tlsv1.2
--capath ..\certs
--user TELawrence:18881935 https://hostx.area51.gov/upload/
*   Trying 211.3.150.21...
* Connected to hostx.area51.gov (211.3.150.21) port 443 (#0)
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
*   CAfile: none
  CApath: ..\certs
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* error:14077102:SSL routines:SSL23_GET_SERVER_HELLO:unsupported protocol
* Closing connection 0
curl: (35) error:14077102:SSL routines:SSL23_GET_SERVER_HELLO:unsupported protocol



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mta.openssl.org/pipermail/openssl-users/attachments/20160806/6f982c5b/attachment.html>


More information about the openssl-users mailing list