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 でクライアント リクエストを適切に処理するにはどうすればよいですか?
ありがとうございました。