Пришлось настраивать openfire jabber сервер. Просили использовать сертификат от Let’s Encrypt, естественно его авто обновление и добиться максимальной оценки на xmpp.org.
Описывать установку не буду. В моём случае это был CentOS 6.6, Openfire 4.0.2 был установлен из своего же пакета, оказался на разделе /opt. Java 8 используется интегрированная в пакет, находится там же.
Для получения сертификата используем LetsEncrypt.
|
|
для того чтоб всё отработало нужно в конфиг виртуального хоста вэб сервера нужного домена добавить что-то такое:
|
|
Сами должны разобраться.
Отключаем устаревшие шифры в файле /opt/openfire/jre/lib/security/java.security
|
|
Для активации 256 битных шифров нужно перейти на сайт java и скачать обновлённые файлы. Переходим по ссылке http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html и качаем файл jce_policy-8.zip. Распаковываем содержимое в /opt/openfire/jre/lib/security/
с заменой. Для активации 2048 DH
ключа нужно в самом скрипте запуска добавить в строку запуска параметр -Djdk.tls.ephemeralDHKeySize=2048
. В человеческих системах, или когда люди больше разбираются, нужно это делать по другому
vim /opt/openfire/jre/lib/security/java.security
|
|
илиvim /etc/default/openfire
|
|
А для автоматического обновления сертификата создаём следующий скрипт, который запускаем когда нужно по крону.
vim /opt/openfire/updcertopenfire.bash
|
|
Обратите внимание на указанный пароль, после этих действий нужно будет его сменить в панели управления openfire, или в этом скрипте на пароль по умолчанию. Так же выяснил что эта версия Openfire не может подключиться к ejabberd, если на том включено starttls required
. Сообщения ejabberd -> openfire
доходят, а обратно openfire -> ejabberd
ничего не доходит. При этом в логах ejabberd разрешено подключение, а в логах openfire загадочные ошибки java. По ошибке выше, скорее всего нужно в Openfire импортировать корневые сертификаты, которые используются на проблемном сервере. В моём случае это был positivessl
. Пока на этом всё.