Re: Connect using TLS with public Web Server

Carlos Castro <[email protected]>
Newsgroups gmane.network.stunnel.user
Message-ID <[email protected]>
@Peter ... I'm sure you are the Best! :)

Now it's works . I needed put ctm.omgeo.net in host file y ready :)

Now i put http://ctm.omgeo.net:19201 and I can connect with 
https://ctm.omgeo.net  (curl  , firefox , application works!)

Many thanks :)


On 06/03/18 11:10, Peter Pentchev wrote:
> On Tue, Mar 06, 2018 at 11:20:20AM +0200, Peter Pentchev wrote:
>> On Mon, Mar 05, 2018 at 01:28:15PM +0100, Carlos Castro wrote:
>>> Hello
>>>
>>> Thanks @Peter
>>>
>>>
>>> Yes , my application not support TLS and I need the application connect
>>> using TLS , for this i using stunnel (i hope)
>>>
>>> When I make curl -v http://127.0.0.1:19021  :
>>>
>>> curl -v http://127.0.0.1:19201
>>> * Rebuilt URL to: http://127.0.0.1:19201/
>>> *   Trying 127.0.0.1...
>>> * Connected to 127.0.0.1 (127.0.0.1) port 19201 (#0)
>>>> GET / HTTP/1.1
>>>> Host: 127.0.0.1:19201
>>>> User-Agent: curl/7.47.0
>>>> Accept: */*
>>>>
>>> * HTTP 1.0, assume close after body
>>> < HTTP/1.0 400 Bad Request
>>> < Server: AkamaiGHost
>>> < Mime-Version: 1.0
>>> < Content-Type: text/html
>>> < Content-Length: 208
>>> < Expires: Mon, 05 Mar 2018 12:25:53 GMT
>>> < Date: Mon, 05 Mar 2018 12:25:53 GMT
>>> < Connection: close
>>>
>>> The web ctm.omgeo.net only works in mode HTTPS , .
>> TL;DR: can you actually try your application with this stunnel config?
> See below; I believe I've found the reason for the "Bad request"
> response, and you need to do something more to get it to work.
>
>> Yes, that's why you have stunnel - it will accept a pure HTTP connection
>> from your application (or, in this case, from cURL), and then it will
>> open a TLS (HTTPS) connection to ctm.omgeo.net.
>>
>> Actually, the "HTTP/1.0 400 Bad Request" response that you get shows
>> that stunnel already works: the request to ctm.omgeo.net is sent via
>> HTTPS, not plain HTTP.  If you try to send a plain HTTP request to
>> ctm.omgeo.net port 443, cURL will report a very different error:
>>
>> [roam@straylight ~]$ curl -v http://ctm.omgeo.net:443/
>> *   Trying 88.221.30.124...
>> * TCP_NODELAY set
>> * Connected to ctm.omgeo.net (88.221.30.124) port 443 (#0)
>>> GET / HTTP/1.1
>>> Host: ctm.omgeo.net:443
>>> User-Agent: curl/7.58.0
>>> Accept: */*
>>>
>> * Recv failure: Connection reset by peer
>> * stopped the pause stream!
>> * Closing connection 0
>> curl: (56) Recv failure: Connection reset by peer
>> [roam@straylight ~]$
>>
>> This happens because ctm.omgeo.net expects a TLS Client Hello message on
>> an incoming connection, and cURL sends it a plaintext HTTP request, so
>> ctm.omgeo.net says "this is not TLS, you must speak TLS to me, go away".
>>
>> So I guess that the "400 Bad Request" response you get from
>> ctm.omgeo.net means that 1. you have successfully sent a request to it
>> and it considered it to be an HTTP request, and 2. it expected
>> the application to send it a specific request, not just a "GET /", so
>> it said "GET / is not a valid request for me, but thanks for speaking
>> HTTPS".  So it's time to test your actual application now; configure it
>> to talk to 127.0.0.1:19201 and see what happens.
>>
>> If anything goes wrong, show us the stunnel log.
> OK, so there's another thing.  If you tell cURL or your application to
> send an HTTP request to 127.0.0.1:19201, then it will send a request
> with a "Host: 127.0.0.1" header, and omgeo.net's Akamai front-end will
> not know which backend server to route it to.  So both cURL and your
> application must be convinced to send a request that has
> a "Host: ctm.omgeo.net" header.
>
> The simplest way to do this is somewhat error-prone, not quite
> future-proof, but it may work for the present.  Add "ctm.omgeo.net" to
> the 127.0.0.1 line in your hosts file (/etc/hosts on a Unix-like system,
> %WINDOWSDIR%\system32\etc\hosts on a Windows system, I believe), and
> configure stunnel to connect to 88.221.30.124:443, not ctm.omgeo.net:443.
> This last part - hardcoding the IP address of the server - is the part
> that is error-prone and not future-proof, since omgeo.net (or Akamai) may
> decide to change that address at any time and things will stop working.
> There is a hackish solution - write a little tool that performs a real DNS
> lookup and, if the IP address has changed, regenerates the stunnel config
> and restarts stunnel, then run this tool every minute or so...  Still,
> it worked for me:
>
> [roam@straylight /etc/stunnel]$ fgrep -e ctm.omgeo.net /etc/hosts
> 127.0.0.1	localhost	ctm.omgeo.net
> [roam@straylight /etc/stunnel]$ curl -v http://ctm.omgeo.net:19201
> * Rebuilt URL to: http://ctm.omgeo.net:19201/
> *   Trying 127.0.0.1...
> * TCP_NODELAY set
> * Connected to ctm.omgeo.net (127.0.0.1) port 19201 (#0)
>> GET / HTTP/1.1
>> Host: ctm.omgeo.net:19201
>> User-Agent: curl/7.58.0
>> Accept: */*
>>
> < HTTP/1.1 302 Moved Temporarily
> < Location: /cleartrust/ct_logon.jsp
> < Content-Length: 0
> < Date: Tue, 06 Mar 2018 09:41:48 GMT
> < Connection: keep-alive
> < Set-Cookie: Actrust-session-v001d=aHR0cHM6Ly9jdG0ub21nZW8ubmV0OjQ0My9pbmRleC5odG1s; secure; domain=.omgeo.net; path=/
> <
> * Connection #0 to host ctm.omgeo.net left intact
> [roam@straylight /etc/stunnel]$
>
> ...so that's a start.
>
> G'luck,
> Peter
>

_______________________________________________
stunnel-users mailing list
[email protected]
https://www.stunnel.org/cgi-bin/mailman/listinfo/stunnel-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.