LINUX.ORG.RU
решено ФорумAdmin

Не работает TLS на ejabberd.


0

1

Помогите разобраться. Centos 6.2 + ejabberd-2.1.11 + erlang-R14B. Казалось бы все просто, но никак не могу настроить на работу TLS для c2s.

В конфиге все стандартно /etc/ejabberd/ejabberd.cfg: {5222, ejabberd_c2s, [ {access, c2s}, {shaper, c2s_shaper}, {max_stanza_size, 65536}, starttls, {certfile, «/etc/ejabberd/ejabberd.pem»} ]},

При попытке дать команду: «openssl s_client -connect node1.test.net:5222 -starttls xmpp» появляется приглашение «CONNECTED(00000003)» и больше ничего (хотя если делаю то же самое для порта 25 и smtp (на серваке поднят рабочий Postfix с TLS, то выдается Серт как положено)). Сертификат сам сгенерился при установке ejabberd, хотя впоследствии пробовал генерить новый; пробовал также брать рабочий от Postfix, но все тщетно. Серт «самодельный». Права на .pem для ejabberd:ejabberd (644 на всякий случай); фаер потушен; порты висят; в логи при подсоединении пишет: (<0.363.0>:ejabberd_listener:281) : (#Port<0.3879>) Accepted connection {{192,168,5,8},51182} -> {{192,168,5,8},5222} и больше никаких действий.


Ответ на: комментарий от getup

Проблема решена:

Т. к. по дефолту в ejabberd.cfg поле hosts = «{hosts, [„localhost“]}.», то и серт скорее всего генерится для localhost. Сгенерировал новый сертификат для «myhost.testdomain.net» (здесь хорошая ссылка: http://www.jabberdoc.org/app_sslkey.html) где в качестве CommonName обязательно нужно указать «myhost.testdomain.net» (ровно как и в конфиге для директивы hosts). Заостряю внимание, что пришлось указать в т. ч. и имя хоста, т. к. только для имени домена не работало. Еще прочел что при смене хостнейма нужно чистить «rm -rf /var/lib/ejabberd/spool» (в этом и была основная загвоздка). После этого все завелось.

slapt ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.