Во-первых, я смог успешно настроить сертификат 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.
Когда я пытаюсь следовать остальной части руководства и проверять, принимает ли мой сервер соединения через порт Secure 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 = пароль
SSLCertificatePassword = пароль
Где пароль - это пароль, который вы ввели при создании хранилища ключей с помощью 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
, на те, что в этой статье синамметрики:
а. Остановите службу smtp xeams:
остановка службы xeams
b.Переименуйте папку jre в каталоге установки xeams:
mv -T jre jre.old
c. Возьмите сжатый файл jre для архитектуры вашего компьютера по ссылке на статью выше и извлеките его в каталог / etc / xeams / jre /
, ваша новая папка jre должна содержать содержимое сжатого файла jre.
г. Запустите xeams!
service xeams start
Я надеюсь, что это исправит это для кого-то там. :)