Назад | Перейти на главную страницу

Как настроить SSL-сертификат Letsencrypt на почтовом сервере Xeams?

Во-первых, мне удалось успешно настроить сертификат letsencrypt на сервере Ubuntu 14.0.4 для моего домена, и я подтвердил, что все в порядке, проверив, что я могу получить доступ к своему домену через https, и убедившись, что у меня действительно есть правильные файлы в:

/etc/letsencrypt/live/domain.tld/

У меня есть почтовый сервер Xeams, работающий на сервере, и мне было трудно выполнить шаги, указанные в руководство. Сначала мне пришлось преобразовать файлы сертификатов, созданные LetsEncrypt, из .pem к .crt с помощью:

openssl x509 -outform der -in my-cert.pem -out my-cert.crt

Это сработало нормально и успешно преобразовало файлы, но проблема, с которой я столкнулся с руководством, заключается в том, что оно предполагает, что у меня еще нет сертификата ssl, что не так. Я не думаю, что мне нужно снова создавать код CSR, когда у меня уже есть сертификат от Letsencrypt.

Чтобы было понятно, это файлы сертификатов, которые у меня есть для моего домена.

  1. cert.pem
  2. chain.pem
  3. Privkey.pem
  4. fullchain.pem

Но в руководстве требуется, чтобы я генерировал коды CSR и еще много чего, я пропустил создание CSR в той части, где мне нужно добавить сертификаты в хранилище ключей, но это не очень просто то, что я должен делать, потому что файлы в руководстве не соответствуют тому, что я получил от Letsencrypt.

Когда я пытаюсь следовать остальной части руководства и проверяю, принимает ли мой сервер соединения через защищенный порт IMAP: 995, мой сервер возвращает самоподписанный сертификат, а не сертификат из ЦС.

Я использовал openssl для тестирования защищенного порта IMAP 995

openssl s_client -connect localhost:995

Я также подтвердил, что Letsencrypt поддерживает протоколы электронной почты ssl и Java, поэтому должно быть что-то, что я не понимаю. Мне не удалось понять, как добавить свои сертификаты в хранилище ключей.

Итак, я наконец понял это после нескольких дней поиска благодаря руководству Вот, вам даже не нужно использовать keytool, поскольку xeams поддерживает PKCS12 сертификаты.

  1. Создать PKCS12 который содержит ваш fullchain.pem и privkey.pem :

    openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out synametrics.cert -name xeams

  2. Скопируйте ваш synametrics.cert в каталог установки xeams:

    cp synametrics.cert /etc/Xeams/config/

  3. Создать server.properties файл в ./config папку, если она еще не существует, и добавьте в файл следующие параметры:

    javax.net.ssl.keyStore=config/synametrics.cert javax.net.ssl.keyStorePassword=password SSLCertificatePassword=password

    куда пароль это пароль, который вы ввели при создании хранилища ключей с помощью openssl.

  4. Выбрать PKCS12 Тип хранилища ключей в панели администратора Xeams> Конфигурация SMTP> Настроить SSL:

  5. Включите безопасный SMTP-сервер и укажите его порт в xeams. Убедитесь, что вы можете подключиться к своему почтовому серверу через указанные порты:

    openssl s_client -connect mail.example.com:465


ИСПРАВЛЕНИЕ ДЛЯ СЛАБОГО КЛЮЧА DH

  1. Вы, вероятно, получите сообщение об ошибке от openssl о DHKey используется слишком маленьким xeams, это проблема xeams, а не openssl или letsencrypt.

    Проблема была вызвана тем, что xeams использовал очень слабый эфемерный открытый ключ Диффи-Хеллмана, меньше 1024 бит, в идеале не должно быть меньше 2048 бит. Я пробовал так много вещей, но вот что исправило для меня:

    Обновите jre, который поставляется с xeams в /etc/xeams/jre с теми, кто в Эта статья по синамметриям:

    а. Остановите службу xeams smtp:

    service xeams stop

    б. Переименуйте папку jre в каталоге установки xeams:

    mv -T jre jre.old

    c. Возьмите сжатый файл jre для архитектуры вашего компьютера по ссылке на статью выше и извлеките его в /etc/xeams/jre/ каталог, ваша новая папка jre должна содержать содержимое сжатого файла jre.

    d. Запускаем xeams!

    service xeams start

Я надеюсь, что это исправит это для кого-то там. :)