Автор: Реми ван Элст (Remy van Elst)
Примечания переводчика:
Как и в случае со статьёй "Заметки о Dockerfile", сейчас не помню - с чего вдруг я решил перевести эту статью.
Сейчас смотрю и недоумеваю от количества воды в ней. Ну да ладно, "пусть будет". Возможно я решил её перевести для комплекта с предыдущим переводом про настройку ejabberd.
Содержание
- Введение
- Создание запроса на подпись сертификата
- Создание сертификата для ejabberd
- Установка сертификата в ejabberd
В этом руководстве подразумевается использование уже настроенного ejabberd. Руководство протестировано в Debian и Ubuntu, но должно подойти для любого сервера ejabberd.
Введение
Для получения SSL-сертификата для сервера ejabberd нужно несколько вещей:- Создать запрос на подпись сертификата - Certificate Signing Request (CSR) и приватный ключ,
- Передать запрос на подпись сертификата в удостоверяющий центр, дать ему подписать его и забрать оттуда готовый сертификат.
- Объединить сертификат, приватный ключ (и цепочку сертификатов) в PEM-файл, совместимый с ejabberd,
- Установить сертификат в ejabberd.
Создание запроса на подпись сертификата
Создадим каталог для хранения всех необходимых файлов и перейдём в него:mkdir -p ~/Certificates/xmpp cd ~/Certificates/xmppТеперь воспользуемся OpenSSL для создания приватного ключа и запроса на подпись сертификата - CSR. При помощи первой команды это можно сделать интерактивно, а при помощи второй - не интерактивно. Убедитесь, что задали правильное значение в поле Общее имя - Common Name (CN). В нём должен быть указан URL XMPP-сервера:
Интерактивная команда:
openssl req -nodes -newkey rsa:2048 -keyout private.key -out CSR.csrНе интерактивная команда:
openssl req -nodes -newkey rsa:2048 -keyout private.key -out CSR.csr -subj "/C=NL/ST=State/L=City/O=Company Name/OU=Department/CN=chat.example.org"В результате работы команды появятся два файла: CSR.csr и private.key. Теперь нужно передать запрос на подпись сертификата - CSR в удостоверяющий центр. Это может быть любой удостоверяющий центр. У меня есть успешный опыт использования Xolphin, но это могут быть другие удостоверяющие центры, например, Digicert и Verisign.
Как только вы передадите запрос на подпись сертификата и получите сертификат, можно продолжать дальше.
Создание сертификата для ejabberd
Как только у вас появятся все необходимые файлы (приватный ключ, сертификат, цепочка сертификатов), поместите их в каталог и продолжайте. Нужно объединить эти файлы в один файл ejabberd.pem.Они должны располагаться в следующем порядке:
- Приватный ключ,
- Сертификат,
- Цепочка сертификатов.
cat private.key >> ejabberd.pem cat certificate.pem >> ejabberd.pem cat chain-1.pem >> ejabberd.pem cat chain-2.pem >> ejabberd.pemЕсли всё сделано, то продолжим.
Установка сертификата в ejabberd
Скопируйте сертификат на все ваши серверы ejabberd:scp ejabberd.pem user@srv1.example.org:Поместите сертификат в каталог /etc/ejabberd:
cp ejabberd.pem /etc/ejabberd/ejabberd.pemТеперь отредактируем файл конфигурации ejabberd так, чтобы он указывал на новый сертификат:
vim /etc/ejabberd/ejabberd.cfgПроверьте, что файл конфигурации указывает на сертификат. При необходимости исправьте:
[...] {listen, [ {5222, ejabberdc2s, [ {access, c2s}, {shaper, c2sshaper}, {maxstanzasize, 65536}, starttls, {certfile, "/etc/ejabberd/ejabberd.pem"}]}, [...] {s2susestarttls, true}. {s2s_certfile, "/etc/ejabberd/ejabberd.pem"}. [...]После этого перезапустите ejabberd:
/etc/init.d/ejabberd restartТеперь можно воспользоваться любым XMPP-клиентом, чтобы подключиться к SSL/TLS и убедиться, что он работает.
2 комментария:
Есть же letsencrypt.
Есть.
Отправить комментарий