The OpenNET Project / Index page

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

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

"Проблема с ssl сертификатами"  +/
Сообщение от globus13 (ok) on 28-Ноя-14, 14:19 
Доброго времени суток. На сервере стоит связка FreeBSD+apache+Courier-IMAP+MySQL+postfix+postfixadmin+fetchmail. На данном локальном почтовом сервере настроены виртуальные почтовые ящики. С помощью fetchmail данный сервер забирает почту по POP3 с внешних почтовых серверов, которые находятся на gmail.com, yandex.ru, mail.ru, rambler.ru, а затем пользователи с помощью почтовых клиентов забирают с него письма. Все работало нормально пока провайдеры не сделали обязательным SSL. Оно-то, конечно, безопасней, только вот в чем косяк... С mail, rambler и yandex почту fetchmail забирает без проблем, а вот gmail каждую неделю меняет SSL сертификаты и стабильно раз в неделю приходится их менять. Работу с сертификатами настраивал как написано здесь http://www.opennet.dev/base/net/fetchmail_setup.txt.html; ПУНКТ: "Избавимся от предупреждений касающихся ssl сертификата." Как побороть сей недуг? Заранее спасибо.
Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Проблема с ssl сертификатами"  +/
Сообщение от михалыч (ok) on 29-Ноя-14, 19:21 
Да, у gmail есть такая заморочка с сертификатами.
Меняют они его. Может боятся чего? трУсы.. ))

Ладно, на хитрую опу есть чего-то там с винтом.

Можно (нужно?) просто тупа скачивать и устанавливать новый сертификат. А?
например (у вас пути в скрипте могут быть другие):
cat replace_cert.sh


#!/bin/sh

# Удаляем все из директории /usr/local/etc/fetchmail/sslcerts/
/bin/rm -f /usr/local/etc/fetchmail/sslcerts/*

# Получаем сертификат Gmail
/bin/echo | /usr/local/bin/openssl s_client -connect imap.gmail.com:993 -showcerts \
| /usr/bin/sed -n '/^-----/,/^-----/p;/-----E/q' > /usr/local/etc/fetchmail/sslcerts/gmail.pem

# Скачиваем и получаем самый последний сертификат
/bin/echo | /usr/local/bin/openssl s_client -connect imap.gmail.com:993 -showcerts \
| /usr/bin/sed -n '/^-----B/,/^-----E/p' | /usr/bin/sed '1p;/^--*B/,/^--*B/d' > /usr/local/etc/fetchmail/sslcerts/gmail2.pem

# Выполряем хеширование сертификата
c_rehash /usr/local/etc/fetchmail/sslcerts/

# Получаем отпечаток ключа (fingerprint) сертификата
FINPR="$(/usr/local/bin/openssl x509 -in /usr/local/etc/fetchmail/sslcerts/gmail.pem -noout -md5 -fingerprint | sed 's/^.*=\(.*\)/\1/')"

# Вставляем полученный отпечаток в файл
/usr/bin/sed -i "" 's/^sslfingerprint ".*"$/sslfingerprint "'$FINPR'"/' /usr/local/etc/fetchmailrc
#/usr/bin/sed -i "" 's/\([A-F0-9]\{2\}:\)\{15\}[A-F0-9]\{2\}/'$FINPR'/' /usr/local/etc/fetchmailrc
#/usr/bin/sed -i "" 's/"\(.*\)"/"'$FINPR'"/' /usr/local/etc/fetchmailrc

# Перезапускаем fetchmail
/usr/local/etc/rc.d/fetchmail restart

Кидаем данный скрипт в /etc/crontab

@weekly root    /usr/local/etc/scripts/replace_cert/replace_cert.sh >/dev/null 2>&

теперь пусть меняют себе на здоровье

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Проблема с ssl сертификатами"  +/
Сообщение от globus13 (ok) on 01-Дек-14, 11:24 
А и еще почему необходимо?
# Получаем сертификат Gmail
/bin/echo | /usr/local/bin/openssl s_client -connect imap.gmail.com:993 -showcerts \
| /usr/bin/sed -n '/^-----/,/^-----/p;/-----E/q' > /usr/local/etc/fetchmail/sslcerts/gmail.pem

# Скачиваем и получаем самый последний сертификат
/bin/echo | /usr/local/bin/openssl s_client -connect imap.gmail.com:993 -showcerts \
| /usr/bin/sed -n '/^-----B/,/^-----E/p' | /usr/bin/sed '1p;/^--*B/,/^--*B/d' > /usr/local/etc/fetchmail/sslcerts/gmail2.pem


почему нельзя получить сертификат
/bin/echo | /usr/local/bin/openssl s_client -connect imap.gmail.com:993 -showcerts \
| /usr/bin/sed -n '/^-----/,/^-----/p;/-----E/q' > /usr/local/etc/fetchmail/sslcerts/gmail.pem

и сразу хешировать?

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

4. "Проблема с ssl сертификатами"  +/
Сообщение от михалыч (ok) on 01-Дек-14, 21:02 
> А и еще почему необходимо?

ну иногда нужен самый последний сертификат,
если это не ваш случай, то вам оно не нужно

> почему нельзя получить сертификат и сразу хешировать?

можно, если не нужен последний (см. выше)

мне нужны оба сертификата и соответственно их хеши (обоих)

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

6. "Проблема с ssl сертификатами"  +/
Сообщение от universite email(ok) on 02-Дек-14, 16:08 
> # Удаляем все из директории /usr/local/etc/fetchmail/sslcerts/

А почему вы решили, что здесь хранятся сертификаты?
Директории /usr/local/etc/fetchmail/ не существует.
По-дефолту конфиг fetchmail в /usr/local/etc/fetchmailrc

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

7. "Проблема с ssl сертификатами"  +/
Сообщение от михалыч (ok) on 02-Дек-14, 16:31 
>> # Удаляем все из директории /usr/local/etc/fetchmail/sslcerts/
> А почему вы решили, что здесь хранятся сертификаты?
> Директории /usr/local/etc/fetchmail/ не существует.
> По-дефолту конфиг fetchmail в /usr/local/etc/fetchmailrc

Хых! ну у меня так, чтобы враги не догадались ))
ну это же не принципиально!

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "Проблема с ssl сертификатами"  +/
Сообщение от universite email(ok) on 02-Дек-14, 19:44 
>>> # Удаляем все из директории /usr/local/etc/fetchmail/sslcerts/
>> А почему вы решили, что здесь хранятся сертификаты?
>> Директории /usr/local/etc/fetchmail/ не существует.
>> По-дефолту конфиг fetchmail в /usr/local/etc/fetchmailrc
> Хых! ну у меня так, чтобы враги не догадались ))
> ну это же не принципиально!

И второе:

Если в /usr/local/etc/fetchmailrc  описаны несколько аккаунтов, то будут проблемы с заменой fingerprint строк.

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "Проблема с ssl сертификатами"  +/
Сообщение от михалыч (ok) on 03-Дек-14, 08:47 
> Если в /usr/local/etc/fetchmailrc  описаны несколько аккаунтов, то будут проблемы с заменой fingerprint строк.

тогда никаких скриптов автоматизации, только хардкор,
тогда только руками скачивать, править и устанавливать, только врукопашную ((

и всё же, почему будут прогблемы?
что, для каждой учетки свой сертификат и отпечаток, неужели?

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "Проблема с ssl сертификатами"  +/
Сообщение от universite email(ok) on 03-Дек-14, 14:20 
>> Если в /usr/local/etc/fetchmailrc  описаны несколько аккаунтов, то будут проблемы с заменой fingerprint строк.
> тогда никаких скриптов автоматизации, только хардкор,
> тогда только руками скачивать, править и устанавливать, только врукопашную ((
> и всё же, почему будут прогблемы?
> что, для каждой учетки свой сертификат и отпечаток, неужели?

Ага. Сервера разные.
имхо, перед строкой fingerprint надо ставить комментарий-метку и по ней делать замену.


Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

2. "Проблема с ssl сертификатами"  +/
Сообщение от globus13 (ok) on 01-Дек-14, 10:43 
т.е. надо в лоб и других вариантов нет. Я понял Вас, спасибо. Еще вопрос. Я с скриптами на вы и кое-что не понятно например, что означает
'/^-----/,/^-----/p;/-----E/q'
'/^-----B/,/^-----E/p'
's/^.*=\(.*\)/\1/')
s/\([A-F0-9]\{2\}:\)\{15\}[A-F0-9]\{2\}/
s/"\(.*\)"/"'$FINPR'"/
/dev/null 2>&
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Проблема с ssl сертификатами"  +/
Сообщение от михалыч (ok) on 01-Дек-14, 21:10 
> т.е. надо в лоб и других вариантов нет. Я понял Вас, спасибо.
> Еще вопрос. Я с скриптами на вы и кое-что не понятно
> например, что означает
> '/^-----/,/^-----/p;/-----E/q'
> '/^-----B/,/^-----E/p'
> 's/^.*=\(.*\)/\1/')
> s/\([A-F0-9]\{2\}:\)\{15\}[A-F0-9]\{2\}/
> s/"\(.*\)"/"'$FINPR'"/
> /dev/null 2>&

Это называется потоковый редактор sed.
Добро пожаловать! ))

с помощью него мы и редактируем полученный (скачиваемый) сертификат,
обрезая лишнее и оставляя только то, что нам необходимо.

получаем отпечаток ключа, сохраняем его в переменной $FINPR,
ищем в файле fetchmailrc строку
sslfingerprint "DA:2F:CF:56:77:8B:D9:7F:D1:BC:1B:07:F1:27:C0:E8"
и заменяем в ней старый отпечаток на полученный новый.
После перезапускаем fetchmail,
чтобы он перечитал конфиг и знал про новый сертификат и отпечаток ключа.

Вроде все.
А! это /dev/null 2>& - глушим выхлоп

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

Архив | Удалить

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




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

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