LINUX.ORG.RU

Prosody и первый запуск

 , ,


1

1

Добрый день Комрады! Поставил Prosody дабы потыкать и получить собственный Jabber-сервер (сервер Ubuntu 16.04). Но увы, вылазит ошибка.

При попытке зайти с мобильного клиента (Conversations), выдает ошибку «Сервер не ответственен за домен», хотя я для приличия еще добавил помимо домена ip-адрес сервера. Xabber тоже шлет лесом. Десктопные аналогично.

В логах самого Prosody одно и тоже

Jul 07 15:56:10 c2s9415388	info	c2s stream for <83.210.152.35> closed: This server does not serve domenname.com
Jul 07 15:56:10 c2s9415388	info	Client disconnected: connection closed
Jul 07 15:58:25 c2s92f6178	info	Client connected
Jul 07 15:58:25 c2s92f6178	info	c2s stream for <83.210.152.35> closed: This server does not serve domenname.com
Jul 07 15:58:25 c2s92f6178	info	Client disconnected: connection closed
Jul 07 15:59:09 c2s942d678	info	Client connected
Jul 07 15:59:09 c2s942d678	info	c2s stream for <83.210.152.35> closed: This server does not serve domenname.com
Jul 07 15:59:09 c2s942d678	info	Client disconnected: connection closed

В prosody.cfg.lua указан мой домен. Сертефикаты в /etc/prosody/certs тоже положил (прежде сгенерировав sudo prosodyctl cert generate domenname.com)

ЧЯДНТ?

hostname в prosody указан? По дефолту там естественно localhost, т.е. если у тебя нужных записей в hosts, то будет несовпадение. Плюс смотри SRV записи.

anonymous_sama ★★★★★ ()
Ответ на: комментарий от anonymous_sama

Я идиот. Забыл удалить строчку

enabled = false -- Remove this line to enable this host

SRV вроде верно указан - http://i.imgur.com/bjmYe5f.png На сервере крутится так же сайт и почта с тем же доменом и проблем нет. Порты открыты и снаружи простукиваются.

Строку удалил, но теперь что-то новенькое. Ругается на сертификат =\

Jul 07 16:43:34 certmanager	error	SSL/TLS: Failed to load '/etc/prosody/certs/DomainName.com.key': Check that the permissions allow Prosody to read this file. (for DomainName.com)
Jul 07 16:43:34 DomainName.com:tls	error	Unable to initialize TLS: error loading private key (Permission denied)
Jul 07 16:43:34 certmanager	error	SSL/TLS: Failed to load '/etc/prosody/certs/DomainName.com.key': Previous error (see logs), or other system error. (for DomainName.com)
Jul 07 16:43:34 DomainName.com:tls	error	Unable to initialize TLS: error loading private key (system lib)
mrWednesday ()
Ответ на: комментарий от mrWednesday

Права на сертификат. В зависимости от дистрибутива, нужно root:prosody 640 или что-то вроде того, насколько позволяет осторожность.

anonymous_sama ★★★★★ ()
Ответ на: комментарий от anonymous_sama

Решил в конфинге изменить сертефикат на уже имеющийся localhost. Кстати, вдруг кому надо в будущем права посмотреть (версия Prosody 0.9.10):

lrwxrwxrwx 1 root root   37 янв 30  2016 localhost.crt -> ../../ssl/certs/ssl-cert-snakeoil.pem
lrwxrwxrwx 1 root root   39 янв 30  2016 localhost.key -> ../../ssl/private/ssl-cert-snakeoil.key

С этим сертификатом все заработало без проблем. Не знаю, на сколько это критично использовать этот сертификат. Решил по новой генерировать, под себя. С сертификатами дел раньше не имел. Полезли новые ошибки:

root@Domain:/etc/prosody/certs# sudo prosodyctl cert generate DomainName.com
Choose key size (2048): xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Generating RSA private key, 2048 bit long modulus
..........................................................................................+++
..............................................+++
e is 65537 (0x10001)
Key written to /var/lib/prosody/DomainName.com.key
Please provide details to include in the certificate config file.
Leave the field empty to use the default value or '.' to exclude the field.
countryName (GB): .
localityName (The Internet): .
organizationName (Your Organisation): .
organizationalUnitName (XMPP Department): .
commonName (DomainName.com): .
emailAddress (xmpp@DomainName.com): .

Config written to /var/lib/prosody/DomainName.com.cnf
error, no objects specified in config file
problems making Certificate Request
There was a problem, see OpenSSL output

В /var/lib/prosody/ лежат 2 файла DomainName.com.cnf и DomainName.com.key файла DomainName.crt нет (как в папке /etc/prosody/certs/localhost.crt)

То есть, после команды sudo prosodyctl cert generate DomainName.com выдает 2 файла, с расширением cnf и key (crt нет) в папке /var/lib/prosody/ , файла DomainName.crt нет (как в папке /etc/prosody/certs/localhost.crt)

ЧЯДНТ?

mrWednesday ()
Ответ на: комментарий от mrWednesday

/etc/prosody/conf.d/DomainName.com.cfg.lua

VirtualHost "DomainName.com"
        ssl = {
                key = "/etc/prosody/certs/DomainName.com.key";
                certificate = "/etc/prosody/certs/DomainName.com.crt";
        }
Проверить, есть ли строчка с certificate = ....

gag ★★★★★ ()
Ответ на: комментарий от gag

prosody 0.9.12-1 (Debian)

# sudo prosodyctl cert generate domainname
Choose key size (2048): 
Generating RSA private key, 2048 bit long modulus
.....................+++
........................................................+++
e is 65537 (0x010001)
Key written to /var/lib/prosody/domainname.key
Please provide details to include in the certificate config file.
Leave the field empty to use the default value or '.' to exclude the field.
countryName (GB): 
localityName (The Internet): 
organizationName (Your Organisation): 
organizationalUnitName (XMPP Department): 
commonName (domainname): 
emailAddress (xmpp@domainname): 

Config written to /var/lib/prosody/domainname.cnf
Certificate written to /var/lib/prosody/domainname.crt

/var/lib/prosody/

-rw-r----- 1 prosody prosody 1752 domainname.cnf
-rw-r----- 1 prosody prosody 2301 domainname.crt
-r-------- 1 prosody prosody 1679 domainname.key

gag ★★★★★ ()
Ответ на: комментарий от gag
error, no objects specified in config file
problems making Certificate Request
There was a problem, see OpenSSL output

А дело в том, что на хотя бы один из вопросов надо ответить хотя бы пустым вводом для принятия значения по-умолчанию (а не исключить всё, указывая точку).

gag ★★★★★ ()
Последнее исправление: gag (всего исправлений: 1)

Prosody is a server for Jabber/XMPP written in Lua.

Я не понимаю, зачем нужен сервер на Lua, если есть ejabberd (написанный на erlang) ?

Einstok_Fair ★★ ()
Ответ на: комментарий от mrWednesday

Я даже не знал про prosodyctl cert generate, я как обычно сразу валидные сертификаты делал, в этом году уже от letsencypt, и сразу с авто-обновлением. В общем если у тебя есть сертификаты для веб-сервера в pem, и для тебя нормально использовать один сертификат для prosody и для веб-сервера (PEM), то можешь сразу его подключать.

anonymous_sama ★★★★★ ()
Ответ на: комментарий от gag

Большое спасибо, помогло! Все заработало. Большое спасибо всем, кто отписался в данной теме. Лучей добра Вам и Вашему ресурсу, единственное место где я нашел ответы и помощь по существу.

mrWednesday ()
Ответ на: комментарий от anonymous_sama

Сервер через cloudflare. Меньше мороки, хотя в будущем думаю стоит получить сертификат и прикрутить его. Хотя особого смысла не вижу, сервер по сути для членов семьи. Почта на своем домене и сервере + замена всякий ватсапов итд. Cloudflare на случай необходимости зайти через веб-морду почты.

mrWednesday ()
Ответ на: комментарий от mrWednesday

Еще 1 вопрос назрел, задам тут дабы не плодить темы.

Надо настроить BOSH.Версия Posody 0.9.10. В настройках раскомментировал строку

	-- HTTP modules
		"bosh"; -- Enable BOSH clients, aka "Jabber over HTTP"

При запуске в логах есть отметка что BOSH-модуль запущен и порт 5280 слушает:

Jul 10 11:06:09 general	info	Prosody is using the select backend for connection handling
Jul 10 11:06:09 portmanager	info	Activated service 'http' on [::]:5280, [*]:5280
Jul 10 11:06:09 portmanager	info	Activated service 'https' on [::]:5281, [*]:5281
Jul 10 11:06:09 portmanager	info	Activated service 'c2s' on [::]:5222, [*]:5222
Jul 10 11:06:09 portmanager	info	Activated service 'legacy_ssl' on no ports
Jul 10 11:06:09 portmanager	info	Activated service 's2s' on [::]:5269, [*]:5269

Вроде все ок, даже порт открыт стал. Но настроить nginx не выходит.По ссылке https://prosody.im/doc/setting_up_bosh написано:

nginx

If you are using nginx, try the following in your nginx config:

        location /http-bind {
            proxy_pass  http://localhost:5280/http-bind;
            proxy_set_header Host $host;
            proxy_buffering off;
            tcp_nodelay on;
        }

Ок, открываю VESTA, иду в Настройки Сервера / NGINX и редактирую /etc/nginx/nginx.conf , добавляю в самый конец нужные строки

         # Cache settings
    proxy_cache_path /var/cache/nginx levels=2 keys_zone=cache:10m inactive=60m max_size=1024m;
    proxy_cache_key "$host$request_uri $cookie_user";
    proxy_temp_path  /var/cache/nginx/temp;
    proxy_ignore_headers Expires Cache-Control;
    proxy_cache_use_stale error timeout invalid_header http_502;
    proxy_cache_valid any 1d;


    # Cache bypass
    map $http_cookie $no_cache {
        default 0;
        ~SESS 1;
        ~wordpress_logged_in 1;
    }


    # File cache settings
    open_file_cache          max=10000 inactive=30s;
    open_file_cache_valid    60s;
    open_file_cache_min_uses 2;
    open_file_cache_errors   off;


    # Wildcard include
    include             /etc/nginx/conf.d/*.conf;
}

        location /http-bind {
            proxy_pass  http://localhost:5280/http-bind;
            proxy_set_header Host $host;
            proxy_buffering off;
            tcp_nodelay on;
        }

Выпадает ошибка - Error: nginx failed to start with new config

И да, мне кажется или трафик через BOSH будет идти на 5280 порт и будет не шифрованный?

mrWednesday ()

Не мог бы скинуть конфиг? Просто клиент не может найти сервер

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