Вопросы по использованию SSL/TLS-соединений в Eserv/3
Встала необходимость внедрения SSL для почтовых клиентов внутри локальной сети. Так и не понял, как и где я могу получить сертификат для моего сервера. Что за сертификат server.pem — из дистрибутива Eserv-a?
Это пример сертификата — выписанный для localhost и подписанный нашим CA. Если вопрос стоит только о шифровке каналов при передаче внутри ЛС (и вообще для своих пользователей где угодно), то можно использовать именно его. Если вам кроме этого нужно доказывать внешним отправителям что "вы это вы", то можно получить серверные сертификаты у общепризнанных CA — Thawte, VeriSign и т.п. Общепризнанность выражается в том, что подлинность подписей на выданных ими сертификатах можно проверить по встроенным в почтовые агенты и браузеры сертифкатам этих CA. Т.е. пользовательские программы доверяют им по умолчанию (доверяют ли пользователи — это другой вопрос). Сертификаты этих CA платные. Во многих случаях используются самовыданные сертификаты или сертификаты не включенных в списки доверенных CA (например, от российских CryptoVendors или от нашего CA ). В этом случае пользовательская программа выдает окошко с вопросом, доверяет ли пользователь этому центру сертификации.Если я правильно понимаю, после того как я получу сертификат для своего сервера и установлю его на нем, из него я должен буду создать сертификаты доверия — которые я внедрю в почтовые клиенты на конечных станциях, правильно ?
Не совсем так. Не "сертификаты доверия". При подключении к вашему серверу по SSL/TLS клиентская программа на стороне пользователя получает сертификат сервера (в этом сертификате в частности содержится открытый ключ, которым подписывается симметричный сессионный ключ шифруемого соединения) и пытается проверить подлинность подписи CA на нем. Если сертификата этого издателя (центра сертификации, CA) в списке доверенных нет, то программа спросит у клиента — доверять ли этому издателю, и как доверять — на время этой конкретной сессии, или до конца срока действия сертфиката. Если пользователь выберет второе, то сертификат издателя помещается в список доверенных, и больше таких вопросов задаваться не будет. Именно это и есть "внедрение в почтовые клиенты", о котором вы говорите. Кроме подлинности подписи сравнивается доменное имя, указанное в подписываемом субьекте, с тем доменным именем, к которому клиент подключается. Если они не совпадают, то выдается соответствующее предупреждение (также как при проверке ~S/MIME подписи в Email сравнивается адрес отправителя и адрес в подписывающем сертификате). И проверяется, не истёк ли срок действия сертификата.Кстати, далеко не все почтовые клиенты делают проверку сертификата и выдают какие-либо сообщения. Некоторые принимают любые сертификаты молча (в отличие от браузеров).
Где я могу получить сертификат для своего сервера, или его можно как-то создать самому?
Как было сказано выше, вы можете получить их в центрах сертификации. Каком именно — зависит от необходимого уровня доверия. Можно делать самовыдачу (с помощью OpenSsl, например), так делает абсолютно подавляющее владельцев серверов. Или можно получить сертификат с подписью CA, не включенных в списки доверенных по умолчанию. Если речь только о шифровке канала, а не о доверии, то в большинстве случаев вам хватит нашего server.pem.Что за ключ в eserv3.ini SSLverifyClient — как он работает и для чего?
Там ведь написано в подсказке к этому ключу в веб-интерфейсе?При регистрации Есерв-а, устанавливались сертификаты, неужели нужно для каждого пользователя создавать свой сертификат?
Нет. Пользователям сертификаты нужны только в случае, если сервер также проверяет пользовательский сертификат (в большинстве случаев это не так). Или для ~S/MIME-подписей писем.TheBat выдает "Приветствие TLS не завершено. Имя сервера ("123.123.123.3") не соответствует сертификату." смотрю в сертификат: имя сервера: localhost ...
Если TheBat не выдает пользователю запрос, в котором можно игнорировать несоответствие имени сервера и имени в сертификате (о чем писалось выше), то остается получить сертификат с указанным именем сервера (в вашем случае 123.123.123.3, хотя лучше и клиента настроить на доменное имя вместо IP, и сертификат получить для этого доменного имени). Если платить CA не входит в ваши планы, то используйте OpenSSL или, например, нашу страницу создания YDK-сертификатов — правда созданный с его помощью PFX-файл вам (как и в с случае с платными CA) придется самостоятельно привести к формату server.pem. Мы бы могли высылать вам ключи в этом формате (скриптом на сервере), но для этого нам пришлось бы запросить у вас закрытый ключ, который создается в вашем браузере — а это нарушение принципов безопасной работы с ключами. В нормальном режиме на наш сервер ваш браузер передает только открытый ключ (для подписи его нашим ключем, т.е. для создания сертификата), закрытый ключ остается у вас, но вашему серверу в server.pem нужны оба ваших ключа.См. также X.509