On Sun, Feb 04, 2007 at 06:13:20PM +0300, Konstantin A. Lepikhov wrote: [...] > > У нас есть кто-нибудь, кто будет использовать общее хранилище > > сертификатов CA и при этом не хочет быть завязан на openssl? Как > > минимум, есть gnutls, который вроде бы является альтерантивной > > реализацией - но там тоже все носят сертификаты с собой? > еще есть NSS и все, что его использует И теперь надо сконвертировать http://git.altlinux.org/people/ldv/packages/?p=ca-certificates.git;a=blob;f=alt/alt.pem;h=2b4b4e71653384c1fdceb249ab4f956d7e52863c;hb=HEAD из PEM в тот формат, который использует мозильная certdata.txt > > 1.1. Выделяем хранилище CA public certs в отдельный noarch-пакет > > 1.2. Пересобираем openssl с использованием хранилища из этого отдельного > > пакета. Пакет называется ca-certificates. > > 2.1. Объявляем полиси вступившим в действие, переносим его с > > http://www.freesource.info/wiki/Altlinux/Policy на > > http://wiki.sisyphus.ru/devel/policy Я не знаю, надо ли переносить страницы, но policy можно считать вступившим в силу. > > 2.2. Смотрим, какие пакеты у нас носят такое хранилище с собой. По > > предварительным подсчетам это: > > > > # grep $'\.pem\t' /Sisyphus/i586/base/contents_index >$TMPDIR/suspicious > > # grep $'\.crt\t' /Sisyphus/i586/base/contents_index >>$TMPDIR/suspicious > > # cut -f2 $TMPDIR/suspicious | sort -u > > > > MySQL-server > > monit > > mutt1.5 > > stunnel > > uw-imap > Там только примеры сертификатов. Это хорошо. Надо проверить остальные. Один неправильный я уже нашёл, libcurl называется: $ strings /usr/lib64/libcurl.so.4 |fgrep curl-ca-bundle.crt /usr/share/curl/curl-ca-bundle.crt - см. http://curl.haxx.se/docs/sslcerts.html > > 2.3. Каждый из этих пакетов смотрим глазами (благо, их немного) и > > рассылаем их мейнтейнерам предупреждения и инструкции, что требуется > > сделать. Пора приступать. > > 2.4. Ждем grace time, допустим, неделю. > > 2.5. Вешаем баги + чиним своими силами через NMU. > > 2.6. Вводим в sisyphus_check проверку: по собранному пакету нужно > > пройтись, в каждом файле поискать "-----BEGIN CERTIFICATE-----" и > > "-----END CERTIFICATE-----". Если такое нашлось - то с помощью: > > > > openssl -in имяфайла -text -noout -purpose > > > > вытащить информацию по сертификату и посмотреть, является ли сертификат. > > Это полумера, недостаточная для 100% уверенности, но по-моему, это > > лучше, чем ничего. > > 2.7. Вводим соответствующий макрос relaxed, чтобы отключить эту проверку. > бредовая затея. Проще вправлять мозги апстриму на предмет использования > OPENSSL_config(3) перед проверкой сертификатов. Вправлять мозги -- это нейрохирургическая операция, которая требует навыков, времени и концентрации (я слышал, что некоторые недавно пытались на скорую руку донести до апстрима исправления сборки --as-needed, пусть они расскажут). В данном случае пакетов, которые нужно исправить на предмет OPENSSL_config(3), не так много, и ждать апстрима некогда. -- ldv