The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"не получается скрестить qpopper с ssl"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"не получается скрестить qpopper с ssl"
Сообщение от Nickolay Искать по авторуВ закладки on 17-Янв-03, 17:21  (MSK)
собрал qpopper 4.0.4 с поддержкой ssl(на машине устновлен OpenSSL 0.9.6.h, OS RH 7.3)
завернул его через xinetd:
service pop3s
{
flags = REUSE NAMEINARGS
socket_type = stream
protocol = tcp
wait = no
user = root
instances = UNLIMITED
server = /usr/local/sbin/popper/popper
server_args = qpopper -s -l 2
log_on_success += HOST PID EXIT DURATION
log_on_failure += ATTEMPT HOST
disable = no
}

в qpopper.config:
set tls-support = alternate-port

ребутим xinetd
поднимается 995-ый порт
при попытке сделать telnet 127.0.0.1 995
Connection closed by foreign host.
в /var/log/maillog:
Jan 16 11:16:51 tt qpopper[15327]: Error setting certificate PEM file
Jan 16 11:16:51 tt qpopper[15327]: ...SSL error: error:0200100E:system library:fopen:Bad address
Jan 16 11:16:51 tt qpopper[15327]: ...SSL error: error:20074002:BIO routines:FILE_CTRL:system lib
Jan 16 11:16:51 tt qpopper[15327]: ...SSL error: error:140AD002:SSL routines:SSL_CTX_use_certificate_file:system lib
Jan 16 11:16:51 tt qpopper[15327]: Failed initializing TLS/SSL

p.s. сертификат самоподписанный (сделан по аналогии с работающим апачевским)

что не так?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: не получается скрестить qpopper с ssl"
Сообщение от lavr emailИскать по авторуВ закладки on 17-Янв-03, 17:30  (MSK)
>собрал qpopper 4.0.4 с поддержкой ssl(на машине устновлен OpenSSL 0.9.6.h, OS RH
>7.3)
>завернул его через xinetd:
>service pop3s
>{
>flags = REUSE NAMEINARGS
>socket_type = stream
>protocol = tcp
>wait = no
>user = root
>instances = UNLIMITED
>server = /usr/local/sbin/popper/popper
>server_args = qpopper -s -l 2
>log_on_success += HOST PID EXIT DURATION
>log_on_failure += ATTEMPT HOST
>disable = no
>}
>
>в qpopper.config:
>set tls-support = alternate-port
>
>ребутим xinetd
>поднимается 995-ый порт
>при попытке сделать telnet 127.0.0.1 995
>Connection closed by foreign host.
>в /var/log/maillog:
>Jan 16 11:16:51 tt qpopper[15327]: Error setting certificate PEM file
>Jan 16 11:16:51 tt qpopper[15327]: ...SSL error: error:0200100E:system library:fopen:Bad address
>Jan 16 11:16:51 tt qpopper[15327]: ...SSL error: error:20074002:BIO routines:FILE_CTRL:system lib
>Jan 16 11:16:51 tt qpopper[15327]: ...SSL error: error:140AD002:SSL routines:SSL_CTX_use_certificate_file:system lib
>Jan 16 11:16:51 tt qpopper[15327]: Failed initializing TLS/SSL
>
>p.s. сертификат самоподписанный (сделан по аналогии с работающим апачевским)
>
>что не так?

1. Создаем заготовку конфига mail.cnf (название любое)

в ней все прозрачно, но by defaul строки:
---------------------------- quote for dialog ---------------------------
[ req_dn ]
countryName = Country Name (2 letter code)
countryName_default             = NO
countryName_min                 = 2
countryName_max                 = 2

stateOrProvinceName             = State or Province Name (full name)
stateOrProvinceName_default     = Some-State

localityName                    = Locality Name (eg, city)
  
0.organizationName              = Organization Name (eg, company)
0.organizationName_default      = FooBar Inc.

organizationalUnitName          = Organizational Unit Name (eg, section)
organizationalUnitName_default =

0.commonName                    = Common Name (FQDN of your server)

1.commonName                    = Common Name (default)
1.commonName_value              = localhost
---------------------------- end of quote --------------------------------

это неудобно, потому что приходится в диалоге заполнять поля по шаблону.

Тонкость в том, что в filename.cnf, чтобы избежать диалога, необходимо
добавить строку:

prompt = no
~~~~~~~~~~~
а в секции req_dn заполнить поля реальными значениями, которая задается в:
distinguished_name = req_dn

Если у нас в distinguished_name = my_data, то браться будет секция:
[ my_data ]
...
...
real parameters
---------------------------- cut mail.cnf ----------------------------
HOME= .
RANDFILE = $ENV::HOME/.rnd

[ req ]
default_bits = 1024
encrypt_key = yes
distinguished_name = req_dn
x509_extensions = cert_type
prompt = no

#[ req_dn ]
#countryName = Country Name (2 letter code)
#countryName_default             = NO
#countryName_min                 = 2
#countryName_max                 = 2
#
#stateOrProvinceName             = State or Province Name (full name)
#stateOrProvinceName_default     = Some-State
#
#localityName                    = Locality Name (eg, city)
#
#0.organizationName              = Organization Name (eg, company)
#0.organizationName_default      = FooBar Inc.
#
#organizationalUnitName          = Organizational Unit Name (eg, section)
##organizationalUnitName_default =
#
#0.commonName                    = Common Name (FQDN of your server)
#
#1.commonName                    = Common Name (default)
#1.commonName_value              = localhost

#--lavr, удалить строки комментариев (#) и пользовать в удовольствие

[ req_dn ]
#C=двухбуквенный код страны
C=RU
#ST=Штат/Провинция/Область/Район
ST=Moscow Region
#L=город/село
L=Dubna Town
#O=Наименование Организации
O=Lavr Co.
#OU=Наименование ответственной организации
OU=Lavr CA
#CN=полное доменное(FQDN) имя телеги для которой генерится сертификат и на
#   которой будет сервис работающий через SSL с этим сертификатом
CN=lavr.pp.ru
#Email=почтовый адрес ответственного лица
Email=lavr@dubna.ru

[ cert_type ]
nsCertType = server

------------------------------ end of cut -------------------------------

2. После того как конфиг готов, выполняем пару команд и сертификат в кармане:

openssl req -new -x509 -days 999 -nodes -config mail.cnf -out stunnel.pem -keyout stunnel.pem

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

openssl x509 -subject -dates -fingerprint -noout -in stunnel.pem
или
openssl x509 -text -in stunnel.pem

использование ключей зависит от того что и как хотим посмотреть

4. Проверка сервисов работающих через SSL:

openssl s_client -connect hostname:port -state -debug

- hostname - имя хоста или fqdn
- port - соответствующий порт сервиса с ssl: 443 или 993 или 995

Использование сертификатов в почтовых агентах:

1. Unix

Если у нас самоподписные сертификаты, то в pine/mutt и других MTA работающих через SSL, я обычно использую: imap/ssl/novalidate-cert (см. документацию), либо добавить сертификат как доверительный

2. Windows

Вырезаем из сгенеренного pem-файла сертификат, и кладем в доступное на шаре - для сети или на www для клиентов место для возможности download

После чего в клиенте находим место где всасываются сертификаты: в нашем случае расширение crt (это не принципиально - там любое можно задать, важно содержание этого файла, дальше получаю запрос как добавить - автоматом, Да, после чего данный сертификат кладется в trusted - доверительные)
Все, работа Windoze Mail-Agents по IMAP/POP3 via SSL происходит без вопросов.

PS. Могу ошибаться, но в четвертой версии OE какая-то хрень с работой IMAP и с работой SSL, must be upgrade (что конкретно - не помню)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "грабля осталась"
Сообщение от Nickolay Искать по авторуВ закладки on 20-Янв-03, 13:18  (MSK)
спасибо за совет по созданию сертификата.
сертификат сделал по образу и подобию, но при проверки
$ openssl s_client -connect 127.0.0.1:995 -state -debug
CONNECTED(00000003)
SSL_connect:before/connect initialization
write to 0814ED40 [0814F378] (124 bytes => 124 (0x7C))
[bla-bla-bla]
SSL_connect:SSLv2/v3 write client hello A
read from 0814ED40 [081548D8] (7 bytes => -1 (0xFFFFFFFF))
SSL_connect:error in SSLv2/v3 read server hello A
write:errno=104

не подскажешь куда копать дальше?
вроде и qpopper'у сказал стартовать через альтернативный порт...

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "RE: грабля осталась"
Сообщение от lavr emailИскать по авторуВ закладки on 20-Янв-03, 14:04  (MSK)
>спасибо за совет по созданию сертификата.
>сертификат сделал по образу и подобию, но при проверки
>$ openssl s_client -connect 127.0.0.1:995 -state -debug
>CONNECTED(00000003)
>SSL_connect:before/connect initialization
>write to 0814ED40 [0814F378] (124 bytes => 124 (0x7C))
>[bla-bla-bla]
>SSL_connect:SSLv2/v3 write client hello A
>read from 0814ED40 [081548D8] (7 bytes => -1 (0xFFFFFFFF))
>SSL_connect:error in SSLv2/v3 read server hello A
>write:errno=104
>
>не подскажешь куда копать дальше?
>вроде и qpopper'у сказал стартовать через альтернативный порт...


qpopper должен знать где лежит сертификат, а сертификат должен быть
правильно сгенерен (смотри какие данные подставлял: CN=FQDN на котором висит pop daemon

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "RE: грабля осталась"
Сообщение от Nickolay Искать по авторуВ закладки on 20-Янв-03, 17:46  (MSK)
>qpopper должен знать где лежит сертификат, а сертификат должен быть
>правильно сгенерен (смотри какие данные подставлял: CN=FQDN на котором висит pop daemon
>

CN правильное(в апаче все ок)
а вот с расположением сертификата затык получается:
я указывал ему "левое" расположение - таже ошибка.
такое впечатление что он вообще не видит этого сертификата :-(

не могли бы Вы показать кусок qpopper.config и xinetd на предмет ключей запуска qpopper?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "RE: грабля осталась"
Сообщение от lavr emailИскать по авторуВ закладки on 21-Янв-03, 12:45  (MSK)
>>qpopper должен знать где лежит сертификат, а сертификат должен быть
>>правильно сгенерен (смотри какие данные подставлял: CN=FQDN на котором висит pop daemon
>>
>
>CN правильное(в апаче все ок)
>а вот с расположением сертификата затык получается:
>я указывал ему "левое" расположение - таже ошибка.
>такое впечатление что он вообще не видит этого сертификата :-(
>
>не могли бы Вы показать кусок qpopper.config и xinetd на предмет ключей
>запуска qpopper?

увы, у меня нет ни qpopper'а ни xinetd

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "все. огромнон спасибо. тред закрыт."
Сообщение от Nickolay Искать по авторуВ закладки on 22-Янв-03, 12:55  (MSK)
Спасибо lavr огромное.
затык был в моих кривых руках :-)
завернув qpopper через xinetd я забыл совершенно про hosts.allow

p.s. напоследок вопрос: каким попером ты пользуешься?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "RE: все. огромнон спасибо. тред закрыт."
Сообщение от lavr emailИскать по авторуВ закладки on 22-Янв-03, 19:28  (MSK)
>Спасибо lavr огромное.
>затык был в моих кривых руках :-)
>завернув qpopper через xinetd я забыл совершенно про hosts.allow
>
>p.s. напоследок вопрос: каким попером ты пользуешься?

везде по разному, где правленный комплект imap-uw с запретом доступа к
портам imap/pop3 извне и взамен imaps/pop3s, где apop3d и другие в зависимости от задач и политики конкретного сервера

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру