6379
правок
Rain (обсуждение | вклад) м (→DNS-записи) |
Rain (обсуждение | вклад) м |
||
Строка 29: | Строка 29: | ||
:: Во всех случаях target'ом для записей служит наш алиас из первого пункта. | :: Во всех случаях target'ом для записей служит наш алиас из первого пункта. | ||
Вот как выглядят записи для данного сервера в админке бесплатного DNS-провайдера [https://dns.he.net Hurricane Electric]: | |||
<center>[[Файл:Jabber srv.png]]</center> | |||
== Сертификаты == | |||
В современном мире стандартной практикой является шифрование соединений, а для этого, в свою очередь, требуются [[Цифровой сертификат|сертификаты]] от доверенных центров сертификации. Можно, конечно, использовать самоподписанный сертификат, но, во-первых, не все серверы будут их принимать - а значит, к ним не получится подключиться и общаться с их пользователями, а во-вторых, в подключающихся клиентах будут появляться сообщения о недоверенном сертификате, что тоже будет доставлять определенные неудобства. Поэтому стоит воспользоваться услугами одного из популярных бесплатных центров сертификации - [https://letsencrypt.org Let's Encrypt]. | |||
Для работы с сертификатами от Let's Encrypt в Debian есть специальный пакет - '''certbot''', поэтому установите его следующей командой: | |||
sudo apt-get install certbot | |||
Сертификаты от Let's Encrypt выдаются сроком на 3 месяца, поэтому в конце этого срока их нужно обновлять. Для подтверждения владения доменом, а также для автоматизации обновления сертификатов в дальнейшем со стороны Let's Encrypt делается запрос на веб-сервер для указанного домена, поэтому для полноценной работы стоит установить какой-нибудь популярный вариант и прописать там виртуальные хосты для нашего jabber-сервера, а также сервисов на нем (сертификаты будут делаться в том числе для сервисов). Пример конфигурации веб-сервера Apache для данного сервера: | |||
{{Hider hiding | |||
|title=apache_to_jabber_service_domains.conf | |||
|content=<pre> | |||
<VirtualHost 185.161.208.229:80 [2a07:c801:0:5::]:80> | |||
ServerAdmin webmaster@jabberworld.info | |||
DocumentRoot /var/www/jabberworld.info/htdocs | |||
ServerName jabberworld.info | |||
</VirtualHost> | |||
<VirtualHost 185.161.208.229:80 [2a07:c801:0:5::]:80> | |||
ServerAdmin webmaster@upload.jabberworld.info | |||
DocumentRoot /var/www/upload.jabberworld.info/htdocs | |||
ServerName upload.jabberworld.info | |||
</VirtualHost> | |||
<VirtualHost 185.161.208.229:80 [2a07:c801:0:5::]:80> | |||
ServerAdmin webmaster@pubsub.jabberworld.info | |||
DocumentRoot /var/www/pubsub.jabberworld.info/htdocs | |||
ServerName pubsub.jabberworld.info | |||
</VirtualHost> | |||
<VirtualHost 185.161.208.229:80 [2a07:c801:0:5::]:80> | |||
ServerAdmin webmaster@conference.jabberworld.info | |||
DocumentRoot /var/www/conference.jabberworld.info/htdocs | |||
ServerName conference.jabberworld.info | |||
</VirtualHost> | |||
<VirtualHost 185.161.208.229:80 [2a07:c801:0:5::]:80> | |||
ServerAdmin webmaster@proxy.jabberworld.info | |||
DocumentRoot /var/www/proxy.jabberworld.info/htdocs | |||
ServerName proxy.jabberworld.info | |||
</VirtualHost> | |||
</pre> | |||
}} | |||
В каталогах сервера не обязательно должен быть какой-то контент, хотя, например, на основном домене можно разместить какую-то страничку, посвященную jabber-серверу, а на поддомене '''conference''' разместить чат-логи [[Конференции|конференций]]. Субдомен '''upload''' можно приспособить под загружаемые через HTTP Upload файлы, чтобы в дальнейшем их раздавал веб-сервер. | |||
После всех приготовлений создайте все необходимые сертификаты. Для этого воспользуйтесь следующими командами (выполнять надо от пользователя '''root'''): | |||
certbot certonly --webroot --webroot-path /var/www/EXAMPLE.COM/htdocs/ -d EXAMPLE.COM | |||
certbot certonly --webroot --webroot-path /var/www/conference.EXAMPLE.COM/htdocs/ -d conference.EXAMPLE.COM | |||
certbot certonly --webroot --webroot-path /var/www/upload.EXAMPLE.COM/htdocs/ -d upload.EXAMPLE.COM | |||
certbot certonly --webroot --webroot-path /var/www/pubsub.EXAMPLE.COM/htdocs/ -d pubsub.EXAMPLE.COM | |||
certbot certonly --webroot --webroot-path /var/www/proxy.EXAMPLE.COM/htdocs/ -d proxy.EXAMPLE.COM | |||
В параметрах после '''--webroot-path''' указывается каталог веб-сервера для данного домена, а после '''-d''' - сам домен. | |||
После успешного выполнения команд будет выдана информация о созданном сертификате, в том числе 2 файла - цепочка ключей и приватный ключ - сохраните эти пути для дальнейшего использования, они нам еще пригодятся. Всего получится 10 файлов. certbot обновляет сертификаты автоматически, если срок их истечения составляет менее 30 дней - т.е., обновление происходит раз в 2 месяца. | |||
Так как ejabberd работает от своего пользователя и не имеет доступа к сертификатам, созданным certbot от рута, то надо каким-то образом предоставить доступ ejabberd'у к сертификатам. Делать это можно по-разному - кто-то, например, меняет права на созданные сертификаты и добавляет возможность ejabberd'у получать доступ к нужным файлам - правда, эти права сбрасываются после каждого обновления сертификатов. В моем случае я создал для ejabberd отдельный каталог - '''/etc/ejabberd/cert''', куда копируются по cron'у созданные сертификаты и уже там даются права для jabber-сервера. | |||
== Настройка ejabberd == | |||
Все подготовительные процедуры завершены, теперь можно приступать непосредственно к настройке своего jabber-сервера. | |||
{{Hider hiding | {{Hider hiding |