Hello<br><br>Is it possible to get stunnel to disconnect people on a graceful restart when a certificate has expired? Stunnel version 4.30 added the graceful reload option which is great because it
will allow us to reload the CRLs, keep everybody connected and prevent
new people connecting when their certs have expired (tested and working) - however existing connections are not terminated even though they have just expired... I'm not sure if we've missed a configuration option or if this is just not possible.<br>
<br>A little background:<br>We host an IRC server listening on localhost:6667, on top of that we have stunnel listening on the external interface port 6697<br>We're using the CAfile and CRLpath options to ensure that people are connecting with a valid certificate.<br>
Every hour a job runs to download the latest CRL files, if there is a change it restarts stunnel and kicks everybody off (we'd like to use a graceful restart instead)<br><br>We are running stunnel on Red Hat Linux using the following line inside an init script to run it as a daemon: daemon /usr/local/bin/stunnel /etc/stunnel/stunnel.conf<br>
<br>Excerpt from stunnel.conf:<br>setuid = daemon<br>setgid = daemon<br>; Some performance tunings<br>socket = l:TCP_NODELAY=1<br>socket = r:TCP_NODELAY=1<br><br>[irc-in]<br>CAfile = /etc/ca/our-chains.pem<br>CRLpath = /etc/crl<br>
accept = 192.168.0.1:6697setuid = daemon<br>setgid = daemon<br><br>connect = localhost:6667<br>verify = 2<br><br><br>Running stunnel -version tells me:<br>Threading:PTHREAD SSL:ENGINE Sockets:POLL,IPv6 Auth:LIBWRAP<br> <br>
Global options<br>debug           = daemon.notice<br>pid             = /var/run/stunnel.pid<br>RNDbytes        = 64<br>RNDfile         = /dev/urandom<br>RNDoverwrite    = yes<br> <br>Service-level options<br>cert            = /etc/stunnel/stunnel.pem<br>
ciphers         = AES:ALL:!aNULL:!eNULL:+RC4:@STRENGTH<br>session         = 300 seconds<br>stack           = 65536 bytes<br>sslVersion      = SSLv3 for client, all for server<br>TIMEOUTbusy     = 300 seconds<br>TIMEOUTclose    = 60 seconds<br>
TIMEOUTconnect  = 10 seconds<br>TIMEOUTidle     = 43200 seconds<br>verify          = none<br><br>Kind Regards<br>Dave<br>