Добрый день, Господа!Скорее всего в теме сообщения неверны термины. :-(
Задача создать защищенный сервер POP3S. Использую сервис tpop3d (в нем есть поддержка POP3S). Для генерации сертификатов openssl.
Создать рабочий сертификат сервера получилось после чтения статей.
Можно тремя путями:
1. Создать просто самоподписанный сертификат сервера:
openssl req -new -x509 -days 365 -sha1 -newkey rsa:1024 -nodes -keyout server.key -out server.crt -subj '/O=Test Lab/OU=IT/CN=server.com'
2. Создать сертификат и подписать своим локальным СА (корневой тоже самоподписанный):
openssl genrsa -des3 -out root.key 2048
openssl req -new -x509 -days 3650 -key root.key -out root.crt
openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr
openssl x509 -CAcreateserial -CAserial root.srl -in server.csr -days 365 -req \
-extensions v3_req -CA root.crt -CAkey Aroot.key -out server.crt
3. Запросить подпись у доверенного CA.
Во всех трех случаях все работает, но почтовые клиенты спрашивают разрешения пользоваться сертификатом, если это не "доверенный" и дальше работают при согласии.
(кстати, это можно добавить в FAQ, т.к. во всех статьях есть неточности, особенно по второму способу)Проблема: Хотелось бы сделать так, что бы почтовый клиент не мог посмотреть почту. если у него нет установленного сертификата, если это возможно. Т.е. создать свой сертификат, подписанный своим локальным CA и без установки этого корневого сертификата, что бы клиент не мог проверить почту. Незнаю точных терминов, НЕсамоподписанный это и и нет.
Надеюсь понятно выразился.
Буду блпгодарен за любые ответы, ссылки, а лучше пример создания.
Спасибо!
> Хотелось бы сделать так, что бы почтовый клиент не мог посмотреть почту.
> если у него нет установленного сертификата, если это возможно.
> Т.е. создать свой сертификат, подписанный своим локальным
> CA и без установки этого корневого сертификата, что бы клиент не
> мог проверить почту.На самом деле Вы хотите выдать каждому клиенту клиентский сертификат и заставить сервер проверять его наличие...
>> Хотелось бы сделать так, что бы почтовый клиент не мог посмотреть почту.
>> если у него нет установленного сертификата, если это возможно.
>> Т.е. создать свой сертификат, подписанный своим локальным
>> CA и без установки этого корневого сертификата, что бы клиент не
>> мог проверить почту.
>
>На самом деле Вы хотите выдать каждому клиенту клиентский сертификат и заставить
>сервер проверять его наличие...Ага, спасибо, с терминами разобрались!
Т.е. мне нужно пойти по 2-му пути и кроме сертификата сервера сгенерировать еще сертификат клиента (по аналогии сервера), подписать его своим локальным CA и установить всем почтовым клиентам. Или немного не так?
Может кто примерчик даст? (так проще разбираться)
Нет, что-то я недопонял.
Пойдя по второму пути опять почтовый клиент будет работать после утвердительных ответов на вопросы о несоответствии сертификатов.
Конечно будет, вот только сервер его пошлет нафиг :)
>Конечно будет, вот только сервер его пошлет нафиг :)Спасибо за ответы!
Но можно пример дать, как сгенерировать такие сертификаты и что чем подписывать?
Эти ответы и так понятны, но настроить не получается.
Попытался сделать еще так:openssl genrsa -des3 -out client.key 2048
openssl req -new -x509 -days 365 -utf8 -key client.key -out client.crt
openssl genrsa -out server.key 1024
openssl req -new -key server.key -out server.csr
openssl x509 -req -in server.csr -out server.crt -CA client.crt -CAkey client.key -CAcreateserial -CAserial server.srl -days 365И все равно клиентское ПО (без установленного вручную сертификата) говорит, что сертификат непонятен, но при продолжении подключется и все работает.
P.S.: ведь пример не займет много времени (только скопировать отсюда команды заменить имена файлов, что-то изменить). В Интернете ничего найти не удается, только описание самодписываемых сертификатов для Апача - это и так работает.
Проверку осуществлять должен не клиент, а сервер. То есть на сервере стоит какая-то из digest аутентификаций, а не plain text password. Как именно это настроить зависит от используемого сервера. На клиенте указывается соответствующий способ авторизации и импортируется сертификат, как именно это сделать опять таки зависит от клиента, но обычно это уже не ваши заботы :)
>То есть на сервере стоит
>какая-то из digest аутентификаций, а не plain text password. Как именно
>это настроить зависит от используемого сервера.хм... Т.е. для tpop3d настройки:
listen-address: х.х.х.х:ххх;tls=immediate,/usr/local/etc/tpop3d/server.crt,/usr/local/etc/tpop3d/server.key
недостаточно? Нужно заставить сервер аутентифицировать пользователя именно по сертификату?
Но похоже в tpop3d нет таких настроек.
Но есть "внешня" аутентификация:
#
# External program (`other') authentication options
#Какую "внешнюю" программу можно использовать для такой аутентификации?
Дальше к сожалению помочь не могу так как даже не слышал о tpop3d.
Кстати, tpop3d требует настройку на сертификаты прибл. в таком виде:
listen-address: х.х.х.х:ххх;tls=immediate,/usr/local/etc/tpop3d/server.crt,/usr/local/etc/tpop3d/server.keyМожет здесь что-то не так?
хм...Вообще интересно. :-)
Просто создаем ключи и сертификат (ничего ничем не подписывая):openssl genrsa -des3 -out server.key 2048
openssl req -new -x509 -days 365 -utf8 -key server.key -out server.crttpop3d.conf:
listen-address: х.х.х.х:ххх;tls=immediate,/usr/local/etc/tpop3d/server.crt,/usr/local/etc/tpop3d/server.key
Забираем почту Outlook-ом Express. При подключении выдается сообщение "Используемый сервер имеет сертификат безопасности, кот. невозможно проверить. ...... Продолжить использование данного сервера?" - нажимаем да и без проблем проверяем почту.
Сервер никого никуда не послал. :-(
Похоже я что-то непонимаю. :-(
>То есть на сервере стоит
>какая-то из digest аутентификаций, а не plain text password. Как именно
>это настроить зависит от используемого сервера.хм... Т.е. для tpop3d настройки:
listen-address: х.х.х.х:ххх;tls=immediate,/usr/local/etc/tpop3d/server.crt,/usr/local/etc/tpop3d/server.key
недостаточно? Нужно заставить сервер аутентифицировать пользователя именно по сертификату?
Но похоже в tpop3d нет таких настроек.
Но есть "внешня" аутентификация:
#
# External program (`other') authentication options
#Какую "внешнюю" программу можно использовать для такой аутентификации?
>[оверквотинг удален]
>listen-address: х.х.х.х:ххх;tls=immediate,/usr/local/etc/tpop3d/server.crt,/usr/local/etc/tpop3d/server.key
>
> недостаточно? Нужно заставить сервер аутентифицировать пользователя именно по сертификату?
> Но похоже в tpop3d нет таких настроек.
> Но есть "внешня" аутентификация:
>#
># External program (`other') authentication options
>#
>
> Какую "внешнюю" программу можно использовать для такой аутентификации?dovecot такое умеет
http://wiki.dovecot.org/SSL/DovecotConfiguration
>[оверквотинг удален]
>> Но есть "внешня" аутентификация:
>>#
>># External program (`other') authentication options
>>#
>>
>> Какую "внешнюю" программу можно использовать для такой аутентификации?
>
>dovecot такое умеет
>
>http://wiki.dovecot.org/SSL/DovecotConfigurationСпасибо, как вариант подумаю. Большое спасибо.
Хотя, насколько я знаю devecot - это навороченный POP3/IMAP сервер, только для этого его использовать целесообразно будет? tpop3d - попроще вроде бы и поменьше.
Просто на сервере еще стоит vm-pop3d для пользователей локальной сети.
А tpop3d с SSL пытался прикрутить для "извращенных" пользователей из вне.
Но все равно, СПАСИБО!
А хотя....
Попутный важный вопрос возник, из-за чего вся эта каша.
Нужно просто забирать почту мобильными телефонами из вне, важна безопастность и конфеденциальность почты.
Может что-то другое посоветуете?
Может я не по тому пути пошел? (думая сделать открытым pop3S (т.е. POP3 c SSL) и аутентификация кроме PAM сертификатом еще)
>А хотя....
>Попутный важный вопрос возник, из-за чего вся эта каша.
>Нужно просто забирать почту мобильными телефонами из вне, важна безопастность и конфеденциальность
>почты.
>Может что-то другое посоветуете?
>Может я не по тому пути пошел? (думая сделать открытым pop3S (т.е.
>POP3 c SSL) и аутентификация кроме PAM сертификатом еще)SSL/TLS + CRAM-MD5 более, чем достаточно, имхо