Как мне установить Letsencrypt ssl на почтовом сервере 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.

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

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

openssl s_client -connect localhost:995

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

1 ответ

Так что я, наконец, понял это после нескольких дней поиска благодаря руководству, вам даже не нужно использовать 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

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

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

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

    openssl s_client -connect mail.example.com:465


FIX FOR WEAK DH KEY

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

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

    Обновите jre, который идет с xeams в /etc/xeams/jre с теми, что в этой статье по synammetrics:

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

    service xeams stop

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

    mv -T jre jre.old

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

    д. Запустите xeams!

    service xeams start

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

Другие вопросы по тегам