Во-первых, мне удалось успешно настроить сертификат 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.
Чтобы было понятно, это файлы сертификатов, которые у меня есть для моего домена.
Но в руководстве требуется, чтобы я генерировал коды CSR и еще много чего, я пропустил создание CSR в той части, где мне нужно добавить сертификаты в хранилище ключей, но это не очень просто то, что я должен делать, потому что файлы в руководстве не соответствуют тому, что я получил от Letsencrypt.
Когда я пытаюсь следовать остальной части руководства и проверяю, принимает ли мой сервер соединения через защищенный порт IMAP: 995, мой сервер возвращает самоподписанный сертификат, а не сертификат из ЦС.
Я использовал openssl для тестирования защищенного порта IMAP 995
openssl s_client -connect localhost:995
Я также подтвердил, что Letsencrypt поддерживает протоколы электронной почты ssl и Java, поэтому должно быть что-то, что я не понимаю. Мне не удалось понять, как добавить свои сертификаты в хранилище ключей.
Итак, я наконец понял это после нескольких дней поиска благодаря руководству Вот, вам даже не нужно использовать 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
куда пароль это пароль, который вы ввели при создании хранилища ключей с помощью openssl.
Выбрать PKCS12 Тип хранилища ключей в панели администратора Xeams> Конфигурация SMTP> Настроить SSL:
Включите безопасный SMTP-сервер и укажите его порт в xeams. Убедитесь, что вы можете подключиться к своему почтовому серверу через указанные порты:
openssl s_client -connect mail.example.com:465
ИСПРАВЛЕНИЕ ДЛЯ СЛАБОГО КЛЮЧА DH
Вы, вероятно, получите сообщение об ошибке от 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
Я надеюсь, что это исправит это для кого-то там. :)