我想通过 stunnel 代理到 XMPP ejabberd/mongoose 服务器。Stunnel 有一个证书,client=no 等。这是配置:
cert = /home/user/ssl/CA/certs/server.cert.pem
key = /home/user/ssl/CA/private/server.nopass.key.pem
;sslVersion = TLSv1
sslVersion = all
setuid = stunnel4
setgid = stunnel4
pid= /var/run/stunnel4/stunnel.pid
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
verify = 2
CApath = /home/user/ssl/CA/certs
CAfile = /home/user/ssl/CA/certs/ca.cert.pem
CRLpath = /home/user/ssl/CA/crl/
CRLfile = /home/user/ssl/CA/crl/crl.pem
debug = info
output = /var/log/stunnel4/stunnel.log
[mongooseim]
accept = 5226
connect = 5222
如果我以这种方式连接:
openssl s_client -connect localhost:5226 -cert /home/user/ssl/CA/certs/username.cert.pem -key /home/user/ssl/CA/private/username.key.pem -verify 2
几乎一切都很好。我的意思是 stunnel 没有错误,xmpp 服务器知道有东西试图连接到它。
但是,如果我以这种方式连接,就像客户端一样(使用 -starttls xmpp):
openssl s_client -connect localhost:5226 -cert /home/user/ssl/CA/certs/username.cert.pem -key /home/user/ssl/CA/private/username.key.pem -verify 2 -starttls xmpp
我在 stunnel 日志中收到错误:
SSL_accept: 140760FC: error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol
并且 xmpp 服务器日志是安静的,这意味着没有任何东西试图连接到 xmpp。
我应该怎么做才能使用 -startssl xmpp 很好地处理客户端请求?
谢谢你。