Как мне установить 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.
Чтобы было ясно, это файлы сертификата, которые у меня есть для моего домена.
- cert.pem
- chain.pem
- privkey.pem
- 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.
Создайте PKCS12, который содержит ваш
fullchain.pem
а такжеprivkey.pem
:openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out synametrics.cert -name xeams
Скопируйте свой
synametrics.cert
в каталог установки xeams:cp synametrics.cert /etc/Xeams/config/
Создать
server.properties
файл в./config
папку, если она еще не существует, и добавьте следующие параметры в файл:javax.net.ssl.keyStore=config/synametrics.cert javax.net.ssl.keyStorePassword=password SSLCertificatePassword=password
Где pasword - это пароль, который вы ввели при создании хранилища ключей с помощью openssl.
Выберите тип хранилища ключей PKCS12 в админ-панели Xeams> Конфигурация SMTP> Настроить SSL:
Включите безопасный SMTP-сервер и укажите его порт в xeams. Убедитесь, что вы можете подключиться к вашему почтовому серверу по указанным портам:
openssl s_client -connect mail.example.com:465
FIX FOR WEAK DH KEY
Вы, вероятно, получите сообщение от 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
Я надеюсь, что это исправит это для кого-то там.:)