I’ve compiled stunnel for Windows CE 5.0 and 6.0, and am running it on an ARM device. It is being used in client mode to secure communications to various external servers with not problems. It is also being used to secure Windows CE’s
webserver.
All of the client mode connections are working flawlessly (thanks for the awesome work, by the way!). The webserver is working properly for all browsers except MSIE 11. Everything I’ve seen tells me that the problem is not really with
stunnel or openssl, but with Internet Explorer. I’ve spent some time searching the mailing list archives and on Google, but haven’t really found a solution to this, besides the obvious “well, don’t use IE.” I’d love to go with the answer, but some of our
users are locked into IE, and let’s must make it a given that the choice of browser can’t be changed.
The browser connects, negotiates a connection, and then exchanges keys and certificates. Using the debug console in IE I see that it sends the initial “GET /”. Then the browser sees the response header, but no “body” data. Again, I realize
this isn’t a specific stunnel issue, but I’m hoping someone on the list has seen a similar issue and found a resolution.
I’ve stripped stunnel.conf down to the very basics (some paths removed for clarity):
; Stunnel config for device
debug = 7
output = <path removed>stunnel.log
options = -NO_SSLv3
log = overwrite
;********* SERVICES ***********
[https-server]
client = no
accept = 443
connect = 127.0.0.1:9975
cert = <path removed>stunnel.pem
delay = yes
TIMEOUTbusy = 5
TIMEOUTclose = 0
TIMEOUTidle = 30
Stunnel log output. I do see the “Peer suddenly disconnected” messages, but again; I’m not sure why. The last two lines of the log are the “transfer() loop executes not transferring any data”:
3916.06.12 08:21:19 LOG7[ui]: Service [https-server] accepted (FD=9) from 192.168.55.77:12377
3916.06.12 08:21:19 LOG7[ui]: Creating a new thread
3916.06.12 08:21:19 LOG7[ui]: New thread created
3916.06.12 08:21:19 LOG7[0]: Service [https-server] started
3916.06.12 08:21:19 LOG5[0]: Service [https-server] accepted connection from 192.168.55.77:12377
3916.06.12 08:21:19 LOG7[0]: SSL state (accept): before/accept initialization
3916.06.12 08:21:19 LOG7[0]: SNI: no virtual services defined
3916.06.12 08:21:19 LOG7[0]: SSL state (accept): SSLv3 read client hello A
3916.06.12 08:21:19 LOG7[0]: SSL state (accept): SSLv3 write server hello A
3916.06.12 08:21:19 LOG7[0]: SSL state (accept): SSLv3 write certificate A
3916.06.12 08:21:19 LOG7[0]: SSL state (accept): SSLv3 write key exchange A
3916.06.12 08:21:19 LOG7[0]: SSL state (accept): SSLv3 write server done A
3916.06.12 08:21:19 LOG7[0]: SSL state (accept): SSLv3 flush data
3916.06.12 08:21:19 LOG7[0]: SSL state (accept): SSLv3 read client certificate A
3916.06.12 08:21:20 LOG7[0]: SSL state (accept): SSLv3 read client key exchange A
3916.06.12 08:21:20 LOG7[0]: SSL state (accept): SSLv3 read certificate verify A
3916.06.12 08:21:20 LOG7[0]: SSL state (accept): SSLv3 read finished A
3916.06.12 08:21:20 LOG7[0]: SSL state (accept): SSLv3 write change cipher spec A
3916.06.12 08:21:20 LOG7[0]: SSL state (accept): SSLv3 write finished A
3916.06.12 08:21:20 LOG7[0]: SSL state (accept): SSLv3 flush data
3916.06.12 08:21:20 LOG7[0]: New session callback
3916.06.12 08:21:20 LOG7[0]: 1 server accept(s) requested
3916.06.12 08:21:20 LOG7[0]: 1 server accept(s) succeeded
3916.06.12 08:21:20 LOG7[0]: 0 server renegotiation(s) requested
3916.06.12 08:21:20 LOG7[0]: 0 session reuse(s)
3916.06.12 08:21:20 LOG7[0]: 0 internal session cache item(s)
3916.06.12 08:21:20 LOG7[0]: 0 internal session cache fill-up(s)
3916.06.12 08:21:20 LOG7[0]: 0 internal session cache miss(es)
3916.06.12 08:21:20 LOG7[0]: 0 external session cache hit(s)
3916.06.12 08:21:20 LOG7[0]: 0 expired session(s) retrieved
3916.06.12 08:21:20 LOG6[0]: SSL accepted: new session negotiated
3916.06.12 08:21:20 LOG6[0]: No peer certificate received
3916.06.12 08:21:20 LOG6[0]: Negotiated TLSv1.2 ciphersuite ECDHE-RSA-AES256-SHA384 (256-bit encryption)
3916.06.12 08:21:20 LOG7[0]: Compression: null, expansion: null
3916.06.12 08:21:20 LOG6[0]: s_connect: connecting 127.0.0.1:9775
3916.06.12 08:21:20 LOG6[0]: s_connect: connected 127.0.0.1:9775
3916.06.12 08:21:20 LOG6[0]: persistence: 127.0.0.1:9775 cached
3916.06.12 08:21:20 LOG5[0]: Service [https-server] connected remote server from 127.0.0.1:49277
3916.06.12 08:21:20 LOG7[0]: Remote descriptor (FD=11) initialized
3916.06.12 08:21:20 LOG6[0]: SSL socket closed (SSL_read)
3916.06.12 08:21:20 LOG7[0]: Sent socket write shutdown
3916.06.12 08:21:20 LOG5[0]: Connection closed: 0 byte(s) sent to SSL, 0 byte(s) sent to socket
3916.06.12 08:21:20 LOG7[0]: Remote descriptor (FD=11) closed
3916.06.12 08:21:20 LOG7[0]: Local descriptor (FD=9) closed
3916.06.12 08:21:20 LOG7[0]: Service [https-server] finished (0 left)
3916.06.12 08:21:22 LOG7[ui]: Found 1 ready file descriptor(s)
3916.06.12 08:21:22 LOG7[ui]: FD=5 ifds=r-x ofds=---
3916.06.12 08:21:22 LOG7[ui]: Service [https-server] accepted (FD=13) from 192.168.55.77:30351
3916.06.12 08:21:22 LOG7[ui]: Creating a new thread
3916.06.12 08:21:22 LOG7[ui]: New thread created
3916.06.12 08:21:22 LOG7[1]: Service [https-server] started
3916.06.12 08:21:22 LOG5[1]: Service [https-server] accepted connection from 192.168.55.77:30351
3916.06.12 08:21:22 LOG7[1]: SSL state (accept): before/accept initialization
3916.06.12 08:21:22 LOG7[1]: SNI: no virtual services defined
3916.06.12 08:21:22 LOG7[1]: SSL state (accept): SSLv3 read client hello A
3916.06.12 08:21:22 LOG7[1]: SSL state (accept): SSLv3 write server hello A
3916.06.12 08:21:22 LOG7[1]: SSL state (accept): SSLv3 write change cipher spec A
3916.06.12 08:21:22 LOG7[1]: SSL state (accept): SSLv3 write finished A
3916.06.12 08:21:22 LOG7[1]: SSL state (accept): SSLv3 flush data
3916.06.12 08:21:22 LOG7[1]: SSL state (accept): SSLv3 read finished A
3916.06.12 08:21:22 LOG7[1]: 2 server accept(s) requested
3916.06.12 08:21:22 LOG7[1]: 2 server accept(s) succeeded
3916.06.12 08:21:22 LOG7[1]: 0 server renegotiation(s) requested
3916.06.12 08:21:22 LOG7[1]: 1 session reuse(s)
3916.06.12 08:21:22 LOG7[1]: 1 internal session cache item(s)
3916.06.12 08:21:22 LOG7[1]: 0 internal session cache fill-up(s)
3916.06.12 08:21:22 LOG7[1]: 0 internal session cache miss(es)
3916.06.12 08:21:22 LOG7[1]: 0 external session cache hit(s)
3916.06.12 08:21:22 LOG7[1]: 0 expired session(s) retrieved
3916.06.12 08:21:22 LOG6[1]: SSL accepted: previous session reused
3916.06.12 08:21:22 LOG6[1]: s_connect: connecting 127.0.0.1:9775
3916.06.12 08:21:22 LOG6[1]: s_connect: connected 127.0.0.1:9775
3916.06.12 08:21:22 LOG6[1]: persistence: 127.0.0.1:9775 cached
3916.06.12 08:21:22 LOG5[1]: Service [https-server] connected remote server from 127.0.0.1:49278
3916.06.12 08:21:22 LOG7[1]: Remote descriptor (FD=15) initialized
3916.06.12 08:21:22 LOG6[1]: SSL socket closed (SSL_read)
3916.06.12 08:21:22 LOG7[1]: Sent socket write shutdown
3916.06.12 08:21:22 LOG5[1]: Connection closed: 0 byte(s) sent to SSL, 0 byte(s) sent to socket
3916.06.12 08:21:22 LOG7[1]: Remote descriptor (FD=15) closed
3916.06.12 08:21:22 LOG7[1]: Local descriptor (FD=13) closed
3916.06.12 08:21:22 LOG7[1]: Service [https-server] finished (0 left)
3916.06.12 08:21:22 LOG7[ui]: Found 1 ready file descriptor(s)
3916.06.12 08:21:22 LOG7[ui]: FD=5 ifds=r-x ofds=---
3916.06.12 08:21:22 LOG7[ui]: Service [https-server] accepted (FD=17) from 192.168.55.77:30352
3916.06.12 08:21:22 LOG7[ui]: Creating a new thread
3916.06.12 08:21:22 LOG7[ui]: New thread created
3916.06.12 08:21:22 LOG7[2]: Service [https-server] started
3916.06.12 08:21:22 LOG5[2]: Service [https-server] accepted connection from 192.168.55.77:30352
3916.06.12 08:21:22 LOG7[2]: SSL state (accept): before/accept initialization
3916.06.12 08:21:22 LOG7[2]: SNI: no virtual services defined
3916.06.12 08:21:22 LOG7[2]: SSL state (accept): SSLv3 read client hello A
3916.06.12 08:21:22 LOG7[2]: SSL state (accept): SSLv3 write server hello A
3916.06.12 08:21:22 LOG7[2]: SSL state (accept): SSLv3 write change cipher spec A
3916.06.12 08:21:22 LOG7[2]: SSL state (accept): SSLv3 write finished A
3916.06.12 08:21:22 LOG7[2]: SSL state (accept): SSLv3 flush data
3916.06.12 08:21:22 LOG7[2]: SSL state (accept): SSLv3 read finished A
3916.06.12 08:21:22 LOG7[2]: 3 server accept(s) requested
3916.06.12 08:21:22 LOG7[2]: 3 server accept(s) succeeded
3916.06.12 08:21:22 LOG7[2]: 0 server renegotiation(s) requested
3916.06.12 08:21:22 LOG7[2]: 2 session reuse(s)
3916.06.12 08:21:22 LOG7[2]: 1 internal session cache item(s)
3916.06.12 08:21:22 LOG7[2]: 0 internal session cache fill-up(s)
3916.06.12 08:21:22 LOG7[2]: 0 internal session cache miss(es)
3916.06.12 08:21:22 LOG7[2]: 0 external session cache hit(s)
3916.06.12 08:21:22 LOG7[2]: 0 expired session(s) retrieved
3916.06.12 08:21:22 LOG6[2]: SSL accepted: previous session reused
3916.06.12 08:21:22 LOG6[2]: s_connect: connecting 127.0.0.1:9775
3916.06.12 08:21:22 LOG6[2]: s_connect: connected 127.0.0.1:9775
3916.06.12 08:21:22 LOG6[2]: persistence: 127.0.0.1:9775 cached
3916.06.12 08:21:22 LOG5[2]: Service [https-server] connected remote server from 127.0.0.1:49279
3916.06.12 08:21:22 LOG7[2]: Remote descriptor (FD=19) initialized
3916.06.12 08:21:22 LOG3[2]: SSL socket closed (SSL_read) with 10137 unsent byte(s)
3916.06.12 08:21:22 LOG5[2]: Connection reset: 239 byte(s) sent to SSL, 553 byte(s) sent to socket
3916.06.12 08:21:22 LOG7[2]: Remote descriptor (FD=19) closed
3916.06.12 08:21:22 LOG7[2]: Local descriptor (FD=17) closed
3916.06.12 08:21:22 LOG7[2]: Service [https-server] finished (0 left)
3916.06.12 08:21:23 LOG7[ui]: Found 1 ready file descriptor(s)
3916.06.12 08:21:23 LOG7[ui]: FD=5 ifds=r-x ofds=---
3916.06.12 08:21:23 LOG7[ui]: Service [https-server] accepted (FD=21) from 192.168.55.77:30353
3916.06.12 08:21:23 LOG7[ui]: Creating a new thread
3916.06.12 08:21:23 LOG7[ui]: New thread created
3916.06.12 08:21:23 LOG7[3]: Service [https-server] started
3916.06.12 08:21:23 LOG5[3]: Service [https-server] accepted connection from 192.168.55.77:30353
3916.06.12 08:21:23 LOG7[3]: SSL state (accept): before/accept initialization
3916.06.12 08:21:23 LOG7[3]: SNI: no virtual services defined
3916.06.12 08:21:23 LOG7[3]: SSL state (accept): SSLv3 read client hello A
3916.06.12 08:21:23 LOG7[3]: SSL state (accept): SSLv3 write server hello A
3916.06.12 08:21:23 LOG7[3]: SSL state (accept): SSLv3 write change cipher spec A
3916.06.12 08:21:23 LOG7[3]: SSL state (accept): SSLv3 write finished A
3916.06.12 08:21:23 LOG7[3]: SSL state (accept): SSLv3 flush data
3916.06.12 08:21:23 LOG7[3]: SSL state (accept): SSLv3 read finished A
3916.06.12 08:21:23 LOG7[3]: 4 server accept(s) requested
3916.06.12 08:21:23 LOG7[3]: 4 server accept(s) succeeded
3916.06.12 08:21:23 LOG7[3]: 0 server renegotiation(s) requested
3916.06.12 08:21:23 LOG7[3]: 3 session reuse(s)
3916.06.12 08:21:23 LOG7[3]: 1 internal session cache item(s)
3916.06.12 08:21:23 LOG7[3]: 0 internal session cache fill-up(s)
3916.06.12 08:21:23 LOG7[3]: 0 internal session cache miss(es)
3916.06.12 08:21:23 LOG7[3]: 0 external session cache hit(s)
3916.06.12 08:21:23 LOG7[3]: 0 expired session(s) retrieved
3916.06.12 08:21:23 LOG6[3]: SSL accepted: previous session reused
3916.06.12 08:21:23 LOG6[3]: s_connect: connecting 127.0.0.1:9775
3916.06.12 08:21:23 LOG6[3]: s_connect: connected 127.0.0.1:9775
3916.06.12 08:21:23 LOG6[3]: persistence: 127.0.0.1:9775 cached
3916.06.12 08:21:23 LOG5[3]: Service [https-server] connected remote server from 127.0.0.1:49280
3916.06.12 08:21:23 LOG7[3]: Remote descriptor (FD=23) initialized
3916.06.12 08:21:23 LOG6[3]: Read socket closed (readsocket)
3916.06.12 08:21:23 LOG7[3]: Sending close_notify alert
3916.06.12 08:21:23 LOG7[3]: SSL alert (write): warning: close notify
3916.06.12 08:21:23 LOG6[3]: SSL_shutdown successfully sent close_notify alert
3916.06.12 08:21:23 LOG3[3]: transfer() loop executes not transferring any data
3916.06.12 08:21:23 LOG3[3]: please report the problem to Michal.Trojnara@mirt.net