Good afternoon,<br><br>I'm trying to use stunnel to secure a legacy application's communications. I can't seem to get it setup and working. Can anyone provide any hints where I'm going wrong?<br><br><br>Here's what I'm trying to accomplish:<br>
<br>A windows service on a client machine connects to a server on port 7000 using TCP. I'd like to encrypt the communication between client and server.<br><br><br>Here's what I've tried:<br><br>Created a new server that accepts ssl connections on port 7443. Got a certificate for the server and installed it.<br>
<br>Installed stunnel on my windows machine (version 7.43 from the distribution archive file).<br>Installed libssl32.dll and libeay32.dll in the same directory as stunnel.exe ( from the openssl-0.9.8h-1 binary distribution).<br>
<br>Installed it as a service using "stunnel -install"<br><br>Configured stunnel as follows:<br><div style="margin-left: 40px;">debug=7<br>output=C:\p4\internal\Utility\Proxy\proxy.log<br>service=Proxy<br>taskbar=no<br>
<br>[exchange]<br>accept=7000<br>client=yes <br>connect=<a href="http://proxy.blah.com:7443">proxy.blah.com:7443</a><br></div><br>I changed my hosts file to trick the old application:<br><br><div style="margin-left: 40px;">
<a href="http://server.blah.com">server.blah.com</a>� 127.0.0.1<br><a href="http://proxy.blah.com">proxy.blah.com</a>� <a href="http://IP-address-of-server.blah.com">IP-address-of-server.blah.com</a><br></div><br>"<a href="http://server.blah.com">server.blah.com</a>" now resolves to the machine it's running on (i.e. stunnel).<br>
"<a href="http://proxy.blah.com">proxy.blah.com</a>" goes to the real server. stunnel should connect to the server.<br><br>I start the stunnel service and try to connect. It looks like it's working but the stunnel service just shuts down with no message.<br>
<br><br>2010.04.19 13:16:21 LOG5[4924:3716]: stunnel 4.33 on x86-pc-mingw32-gnu with OpenSSL 0.9.8h 28 May 2008<br>2010.04.19 13:16:21 LOG5[4924:3716]: Threading:WIN32 SSL:ENGINE Sockets:SELECT,IPv6<br>2010.04.19 13:16:49 LOG5[4924:3748]: Service exchange accepted connection from <a href="http://127.0.0.1:4134">127.0.0.1:4134</a><br>
2010.04.19 13:16:49 LOG6[4924:3748]: connect_blocking: connecting x.80.60.32:7443<br>2010.04.19 13:16:49 LOG5[4924:3748]: connect_blocking: connected x.80.60.32:7443<br>2010.04.19 13:16:49 LOG5[4924:3748]: Service exchange connected remote server from x.253.120.19:4135<br>
2010.04.19 13:20:24 LOG5[3668:3856]: Reading configuration from file stunnel.conf<br>2010.04.19 13:20:24 LOG7[3668:3856]: Snagged 64 random bytes from C:/.rnd<br>2010.04.19 13:20:24 LOG7[3668:3856]: Wrote 1024 new random bytes to C:/.rnd<br>
2010.04.19 13:20:24 LOG7[3668:3856]: RAND_status claims sufficient entropy for the PRNG<br>2010.04.19 13:20:24 LOG7[3668:3856]: PRNG seeded successfully<br>2010.04.19 13:20:24 LOG7[3668:3856]: SSL context initialized for service exchange<br>
2010.04.19 13:20:24 LOG5[3668:3856]: Configuration successful<br>2010.04.19 13:20:24 LOG5[3668:3856]: No limit detected for the number of clients<br>2010.04.19 13:20:24 LOG7[3668:3856]: FD=312 in non-blocking mode<br>2010.04.19 13:20:24 LOG7[3668:3856]: Option SO_REUSEADDR set on accept socket<br>
2010.04.19 13:20:24 LOG7[3668:3856]: Service exchange bound to <a href="http://0.0.0.0:7000">0.0.0.0:7000</a><br>2010.04.19 13:20:24 LOG7[3668:3856]: Service exchange opened FD=312<br>2010.04.19 13:20:24 LOG5[3668:3856]: stunnel 4.33 on x86-pc-mingw32-gnu with OpenSSL 0.9.8h 28 May 2008<br>
2010.04.19 13:20:24 LOG5[3668:3856]: Threading:WIN32 SSL:ENGINE Sockets:SELECT,IPv6<br>2010.04.19 13:21:02 LOG7[3668:4556]: Service exchange accepted FD=372 from <a href="http://127.0.0.1:4156">127.0.0.1:4156</a><br>2010.04.19 13:21:02 LOG7[3668:4556]: Creating a new thread<br>
2010.04.19 13:21:02 LOG7[3668:4556]: New thread created<br>2010.04.19 13:21:02 LOG7[3668:3756]: Service exchange started<br>2010.04.19 13:21:02 LOG7[3668:3756]: FD=372 in non-blocking mode<br>2010.04.19 13:21:02 LOG5[3668:3756]: Service exchange accepted connection from <a href="http://127.0.0.1:4156">127.0.0.1:4156</a><br>
2010.04.19 13:21:02 LOG7[3668:3756]: FD=396 in non-blocking mode<br>2010.04.19 13:21:02 LOG6[3668:3756]: connect_blocking: connecting x.80.60.32:7443<br>2010.04.19 13:21:02 LOG7[3668:3756]: connect_blocking: s_poll_wait x.80.60.32:7443: waiting 10 seconds<br>
2010.04.19 13:21:02 LOG5[3668:3756]: connect_blocking: connected x.80.60.32:7443<br>2010.04.19 13:21:02 LOG5[3668:3756]: Service exchange connected remote server from x.253.120.19:4157<br>2010.04.19 13:21:02 LOG7[3668:3756]: Remote FD=396 initialized<br>
2010.04.19 13:21:02 LOG7[3668:3756]: SSL state (connect): before/connect initialization<br>2010.04.19 13:21:02 LOG7[3668:3756]: SSL state (connect): SSLv3 write client hello A<br>2010.04.19 13:21:02 LOG7[3668:3756]: SSL state (connect): SSLv3 read server hello A<br>
2010.04.19 13:21:02 LOG7[3668:3756]: SSL state (connect): SSLv3 read server certificate A<br>2010.04.19 13:21:02 LOG7[3668:3756]: SSL state (connect): SSLv3 read server done A<br>2010.04.19 13:21:02 LOG7[3668:3756]: SSL state (connect): SSLv3 write client key exchange A<br>
2010.04.19 13:21:02 LOG7[3668:3756]: SSL state (connect): SSLv3 write change cipher spec A<br>2010.04.19 13:21:02 LOG7[3668:3756]: SSL state (connect): SSLv3 write finished A<br>2010.04.19 13:21:02 LOG7[3668:3756]: SSL state (connect): SSLv3 flush data<br>
2010.04.19 13:21:02 LOG7[3668:3756]: SSL state (connect): SSLv3 read finished A<br><br>The client thinks the connection is closed:<br><br>No connection could be made because the target machine actively refused it <a href="http://127.0.0.1:7000">127.0.0.1:7000</a><br>
�� at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)<br>�� at System.Net.Sockets.Socket.Connect(EndPoint remoteEP)<br>�� at Service.ConnUtility.Connect()<br><br>Any suggestions?<br>
<br>Thanks<br><br>