LINUX.ORG.RU
ФорумAdmin

SSL сертификат. Разные сервисы. Один домен.

 , ,


1

2

Здравствуйте!

Сервисы висящие на mydomain.ru

  • jabber (ejabberd)
  • mail (postfix, dovecot)
  • http (apache2)

используют самоподписанные сертификаты. Сторонним сервисам/приложениям это перестало нравится Причина дисконекта.

Выход купить «недорого» сертификат. Выбор пал на AlphaSSL

  • Доступный для физических лиц;
  • Защищает не только домен mydomain.ru, но и субдомены *.mydomain.ru;
  • Валидирует только принадлежность домена владельцу.

Этот AlphaSSL прикрутится ко всем сервисам IMAP, XMPP, HTTP или что-то надо учесть?

Предпологаемый алгоритм действий:

  • На своей рабочей станции создаю CRS(Certificate Signing Request)
    openssl genrsa -out private.key 2048
  • В личной кабинет копирую запрос и жду выпуска сертификата
  • По получению подключаю к сервисам apache2, postfix, jabber через их конф. файлы
★★★★★
Ответ на: комментарий от Radjah

wildcard нет там только

а он для сторонних сервисов и не нужен для них все на mydomain.ru висит.

Попробую...

petav ★★★★★
() автор топика

Ух ты, какой дешевый wildcard.

...или что-то надо учесть?

Нуу, в первую очередь, конечно, распространенность доверия к CA на целевых клиентских системах. Обычно этого достаточно, но исключения вполне возможны. Например, емнип, яблочные впн-клиенты обязательно требует непосредственное днс-имя в subjectAlternativeName, если его нет в CN.

openssl genrsa -out private.key 2048

Это ключ, а не CSR.

thesis ★★★★★
()
Ответ на: комментарий от thesis

распространенность доверия к CA

уточню у хозяйствующего субъекта про Let's Encrypt, хотя проще попробовать.

petav ★★★★★
() автор топика

letsencrypt+certbot
Для каждого сервиса сделать отдельный поддомен и соответствующий этому поддомену сертификат.

ArcFi
()
Ответ на: комментарий от Black_Shadow

Да, есть!

Другой вопрос. У меня в DNS

@                     MX      5 mx.mydomain.ru.
mx                    A       192.168.0.1
imap                  A       192.168.0.1
smtp                  A       192.168.0.1

Значит придется, либо 2 сертификата выписывать и для зоны imap указать сертификаты демону dovecot, а для зоны smtp демону postfix, либо поправить зону к виду:

@                     MX      5 mydomain.ru.
и в клиентах указывать mydomain.ru в качестве imap и smtp.

petav ★★★★★
() автор топика
Ответ на: комментарий от petav

2 сертификата выписывать и для зоны imap указать сертификаты демону dovecot, а для зоны smtp демону postfix

Лучше всего именно так и сделать.

ArcFi
()
Ответ на: комментарий от petav

Я использую dehydrated, меня устраивает.
Официальная софтина Let's Encrypt была какой-то наркоманской, так-что альтернативных клиентов наплодились огромное количество.

MrClon ★★★★★
()
Ответ на: комментарий от snaf

Для одного сервиса можно, для нескольких не стоит.
Подобный подход порождает дополнительные проблемы, связанные с перевыпуском сертификатов в контексте масштабируемой инфраструктуры и негативно сказывается на безопасности системы в целом.

ArcFi
()
Ответ на: комментарий от ArcFi

негативно сказывается на безопасности системы в целом.

с чего это вдруг?

да и с остальным сказанным я тоже несогласен.

snaf ★★★★★
()
Последнее исправление: snaf (всего исправлений: 1)
Ответ на: комментарий от snaf

Скомпрометировали один сервис и имеем возможность расшифровки трафика остальных.
При росте нагрузки перенесли роль на другой сервер и получили проблему синхронизации сертификатов.

ArcFi
()
Ответ на: комментарий от ArcFi

Скомпрометировали один сервис и имеем возможность расшифровки трафика остальных.

у нас тут и так всё работает на одном хосте и админет всё тот же человек. Так что данный пункт не особо актуален.

При росте нагрузки перенесли роль на другой сервер и получили проблему синхронизации сертификатов.

1) ТС планирует использовать бесплатный letsencrypt. Так что ему ничего не мешает слепить еще парочку бесплатных сертификатов.
2) ТС-у ничего не мешает скопировать на «другой сервер» сами сертификаты с приватными ключами.

Если у вас SubjectAlternativeName ассоцируется с уязвимостью, у вас странные понятия о безопасности.

snaf ★★★★★
()
Последнее исправление: snaf (всего исправлений: 1)
Ответ на: комментарий от snaf

у нас тут и так

В вашем частном случае вы сами определяете требуемый уровень безопасности, но это не отменяет факта наличия проблемы в общем случае.
Однако, когда каждый сервис работает под ограниченным пользователем с выделенным сертификатом, компрометация отдельного сервиса не несёт прямой угрозы для безопасности остальных сервисов.

скопировать на «другой сервер» сами сертификаты с приватными ключами

Вы недооцениваете сложность задачи.
Придётся синхронизовать не только обновление сертификата и его применение к сервису, но и репликацию сертификатов между серверами, что порождает целый ворох неочевидных проблем, начиная с того, что связь между серверами не обязана присутствовать, а её установка и настройка сама по себе является отдельной задачей.

ArcFi
()

Продолжая тему, у меня сейчас:

smtp.mydomain.ru:25 STARTLS
/etc/postfix/main.cf

# TLS конфигурация
smtpd_use_tls = yes
smtpd_tls_cert_file=/etc/postfix/certificate/smtpd.pem
smtpd_tls_key_file=/etc/postfix/certificate/smtpd.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_tls_loglevel = 0
smtpd_tls_received_header = yes

imap.mydomain.ru:993 TLS
/etc/dovecot/dovecot.conf

ssl_cert = </etc/dovecot/certificate/dovecot.pem
ssl_key = </etc/dovecot/certificate/dovecot.key

Вопросы:

  1. Если я верно понял, то тут только пути к новым сертификатам поменять.
  2. Что делать c mx.mydomain.ru? Создать один сертификат smtp.mydomain.ru + mx.mydomain.ru?
  3. Cоздать HTTP imap.mydomain.ru и smtp.mydomain.ru для получения сертификатов?
  4. STARTLS и TLS придется у клиентов менять на SSL?
petav ★★★★★
() автор топика
Ответ на: комментарий от petav

только пути к новым сертификатам поменять

Да.

Что делать c mx.mydomain.ru?

Если эти задачи решает один сервис, то можно MX направить на SMTP.

Cоздать HTTP imap.mydomain.ru и smtp.mydomain.ru для получения сертификатов?

Должно работать без лишних виртуалхостов.

STARTLS и TLS придется у клиентов менять на SSL?

Я у себя наоборот везде перешёл на STARTTLS.

ArcFi
()
Ответ на: комментарий от ArcFi

Должно работать без лишних виртуалхостов.

т.е. если я укажу certbot корень сайта mydomain.ru и запрошу сертификаты для imap.mydomain.ru все заработает. Да, логично. Можно же запросить -d mydomain.ru -d http://www.mydomain.ru

Я у себя наоборот везде перешёл на STARTTLS

Я к сожалению не переходил, адмнистрирование почты было вменено служебными инструкциями. И для STARTTLS и для SSL типа шифрования, сертификаты одни и теже подойдут? А будет это то STARTTLS или SSL, где-то в конфигах определяется?

petav ★★★★★
() автор топика
Ответ на: комментарий от petav

т.е. если я укажу certbot корень сайта mydomain.ru и запрошу сертификаты для imap.mydomain.ru все заработает

Надо убедиться, что «/.well-known» отображается в нужный каталог файловой системы:

certbot certonly --agree-tos --email "admin@${HOSTNAME#*.}" --rsa-key-size "4096" --text \
--webroot --webroot-path "/var/www/letsencrypt" --domains "imap.${HOSTNAME#*.}"

cat /etc/httpd/conf.d/letsencrypt.conf 
Alias /.well-known /var/www/letsencrypt/.well-known

И для STARTTLS и для SSL типа шифрования, сертификаты одни и теже подойдут?

Должны работать оба независимо от сертификата.

ArcFi
()
Ответ на: комментарий от ArcFi

Должны работать оба независимо от сертификата

Буду пробовать.

Пользуясь случаем, спрошу. Порт smtp, сейчас 25, что-то я не нашел в postfix упоминания об этом. Хочу поставить стандартный 465

petav ★★★★★
() автор топика
Ответ на: комментарий от ArcFi

Запустил получение сертификата

./certbot-auto certonly --webroot --agree-tos --email admin@mydomain.ru -w /var/www/mydomain/ -d imap.mydomain.ru

получил

http://imap.mydomain.ru/.well-known/acme-challenge/bwU5P2_Cwn6ki7108B6e_nqA_wZCphgDtnjxrfUAReY:
404 Not Found

т.е. http путь верификации должен совпадать с первым параметром в -d

В apache поправил VirtualHost домена mydomain.ru


<VirtualHost *:80>
        ServerAdmin admin@mydomain.ru
        ServerName mydomain.ru
        ServerAlias www.mydomain.ru
        ServerAlias imap.mydomain.ru
        ServerAlias smtp.mydomain.ru
<VirtualHost>

Да, можно было выписать сертификат на mydomain.ru и перечисленные поддомены за раз, но я соглашусь [user]ArcFi[/user], что лучше придерживатся правила, каждому сервису свой сертификат. (Благо, что они есть бесплатные, а иначе думал бы по другому конечно)

petav ★★★★★
() автор топика
Ответ на: комментарий от ArcFi

Если эти задачи решает один сервис, то можно MX направить на SMTP

Если решает один сервис то по другому и не сделать? или можно без поднятия отдельной сущьности, только магией конф.файлов?

petav ★★★★★
() автор топика
Ответ на: комментарий от petav

Сертификаты нужны на то, что указываешь в качестве сервера IMAP и SMTP в настройках программы. Программа проходит по этим доменам и анализирует соответствие сертификата домену и доверенный ли CA у нее в потрохах, который этот сертификат выдал.

По MX записям ходят MTA и используют все тот же SMTP протокол. Стандартными средствами ни как не разделить сертификатами SMTP и MX если они на одном postfix. Значит единственно верным решением будет заменить DNS запись

;; ANSWER SECTION:
mydomain.ru.              49462   IN      MX      0 mx.mydomain.ru.
на
;; ANSWER SECTION:
mydomain.ru.              49462   IN      MX      0 smtp.mydomain.ru.

petav ★★★★★
() автор топика
Ответ на: комментарий от petav

Значит единственно верным решением будет заменить DNS запись

У меня сделано так же, только через named view internal/external клиентам отдаются разные адреса.
Однако это это не единственно верное решение, ещё можно использовать SubjectAlternativeName.

ArcFi
()
Ответ на: комментарий от ArcFi

Однако это это не единственно верное решение, ещё можно использовать SubjectAlternativeName

Can I get a certificate for multiple domain names (SAN certificates)?

Yes, the same certificate can apply to several different names using the Subject Alternative Name (SAN) mechanism. Certbot automatically requests certificates for multiple names when requested to do so. The resulting certificates will be accepted by browsers for any of the domain names listed in them.

т.е. если я несколько имен укажу в -d то получу SAN

./certbot-auto certonly --webroot --agree-tos --email admin@mydomain.ru -w /var/www/mydomain/ -d imap.mydomain.ru -d mx.mydomain.ru
Спасибо, это лучше не придеться внешний DNS править.

petav ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.