информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
За кого нас держат?Сетевые кракеры и правда о деле ЛевинаГде водятся OGRы
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Крупный взлом GoDaddy 
 Просроченный сертификат ломает... 
 Phrack #70/0x46 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / sysadmin
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
да 25.08.05 08:07  Число просмотров: 1929
Автор: cybervlad <cybervlad> Статус: Elderman
<"чистая" ссылка>
> корневой это ca_cert который?
да


> вот как я делаю.. мож ошибки найдешь?
пока все правильно

> самое, но для клиента.
>
> #cd /etc/ssl
> #rm index.txt
> #touch index.txt
а вот это - зря
в этом файле хранится перечень сертификатов. а еще должен быть файл serial, где хранится последний заюзанный серийник.

> на этом месте у тебя возникнет ошибка "TXT_DB error number
> 2"
естественно, ты же грохнул базу (index.txt)

> После долгих поисков и умственных усилий был найден
> источник ошибки - файл index.txt.
:)

> Фактически,
> внеся информацию о первом сертификате, программа не может
> повторно обновить содержимое файла.
Прав-то хватает?

> Так что надо ручками удалять его содержимое, или заменять
> пустым файлом.
фигассе...
не будет оно работать с пустой базой.

> то есть убить index.txt после чего
> #touch index.txt
> кстати надо почитать что делает тач :)
тач меняет время создания файла, если файла нет, создает пустой.

> Значительно позже, в инструкции по nix версии я нашел
> краткое объяснение:
> The CA program does not update the 'certificate' file
> correctly right now.
> The serial field should be unique as should the CN/status
> combination.
> The ca program checks these at startup. What still needs to
> be written is a program to
> 'regenerate' the data base file from the issued certificate
> list (and a CRL list).
у меня в самом начале был грабль с серийником. я посмотрел серийник корневого сертификата, вписал его в файл serial, поменял одну цифру и дальше все заработало. давно это было ;)

> Так, и на последок создаем Diffie-Hellman (фиг знает как
> это по-русски написать) файл
Диффи и Хеллман - это 2 фамилии ;) Алгоритм выработки общего ключа так назван :)
<sysadmin>
Есть гуру по OpenVPN? с сертификатами у меня глюки 23.08.05 10:10  
Автор: mentat[bugtraq.ru] <Александр> Статус: Elderman
<"чистая" ссылка>
неприятные :((
вообщем в кратце так:
мой openssl.cnf:


default_days = 3650 # how long to certify for
default_crl_days= 3650 # how long before next CRL
default_md = md5 # which md to use.
preserve = no # keep passed DN ordering

при этом, блин уже 2-й(!!) раз накалываюсь - проходит месяц все окей работает а через месяц (30 дней) - сертификат недействителен! :( что за хрень? в первый раз я списал на ошибку, ну думаю не заметил, забыл поставить 3650 дней.. бывает. переделал. Причем! сделал "openssl verify certs/Chome.pem" - система бодро отрапортовала - "да все зашибись, до 2015года у вас сертификат". вчера блин полез - невалиден. делаю верифай - "экспайред!". как так?!
где-нить это событие и причины должны отражаться(я имею ввиду причина кончины сертификата)?

система FreeBSD 5.4 Current
OpenVPN 2.0
это сервер
клиент ВиндаХР СП2 опенВПН-вин32 2.0
А ты уверен, что твой софт использует этот конфиг? 23.08.05 11:49  
Автор: cybervlad <cybervlad> Статус: Elderman
Отредактировано 23.08.05 11:58  Количество правок: 1
<"чистая" ссылка>
> мой openssl.cnf:
А ты уверен, что твой софт использует этот конфиг?
У меня, например, для выпуска сертификатов отдельный скрипт используется:
==
#! /bin/bash

certname=`basename $1`
basement=`dirname $0`

openssl ca -notext -days 1825 -batch \
-config $basement/../etc/issue.cnf \
-keyfile $basement/../keys/key.pem \
-cert $basement/../cacert/cacert.pem \
-in $1 \
-out $basement/../certificates/$certname
==

Соответственно, юзается конфиг issue.cnf, а не openssl.cnf
Я на эти грабли налетал, когда апачу сертификат делал - в конфиге правлю срок жизни, а оно все равно на 30 дней делает. Выяснилось, что он свой конфиг пользует.
Кстати, параметр командной строки -days "перебивает" установку из конфига.
В общем, посмотри, как OpenVPN вызывает openssl.

p.s. Еще вспомнил: а корневой сертификат на сколько выпущен? Ты в конфиге можешь писать что угодно, но если корневик на 30 дней, он подчиненные издаст только в пределах своего срока жизни.
как поглядеть данные сертификата подробности? 24.08.05 12:52  
Автор: mentat[bugtraq.ru] <Александр> Статус: Elderman
<"чистая" ссылка>
openssl verify -verbose /etc/ssl/certs/ca_cert.pem

это клево но он дает только "ОК" а мне б дату до которой он валиден и время с которого он валиден... это возможно?
конечно :) 25.08.05 07:51  
Автор: cybervlad <cybervlad> Статус: Elderman
<"чистая" ссылка>
> openssl verify -verbose /etc/ssl/certs/ca_cert.pem
>
> это клево но он дает только "ОК" а мне б дату до которой он
> валиден и время с которого он валиден... это возможно?
конечно :)
man openssl не пробовал? :)
или openssl x509 без параметров.

Полная инфа о сертификате:
openssl x509 -text < твой_файл.pem

Можно попросить показать конкретное поле, например дату окончания действия:
openssl x509 -enddate < твой_файл.pem

Чтобы подавить вывод "пемовского" блока
openssl x509 -enddate -noout < твой_файл.pem

Вместо перенаправления ввода "<" можно использовать параметр "-in":
openssl x509 -enddate -noout -in твой_файл.pem

По умолчанию входной формат - PEM, если он другой (например, DER), надо параметром "-inform" сказать об этом.

p.s. Вообще, утилита openssl - рулит. С ее помощью "на скриптах" можно свой CA сваять :)
спасибище огромное. корневик был на месяц :(( 25.08.05 13:47  
Автор: mentat[bugtraq.ru] <Александр> Статус: Elderman
<"чистая" ссылка>
корневой это ca_cert который? 24.08.05 12:49  
Автор: mentat[bugtraq.ru] <Александр> Статус: Elderman
<"чистая" ссылка>

> p.s. Еще вспомнил: а корневой сертификат на сколько
> выпущен? Ты в конфиге можешь писать что угодно, но если
> корневик на 30 дней, он подчиненные издаст только в
> пределах своего срока жизни.
корневой это ca_cert который?


вот как я делаю.. мож ошибки найдешь?

#openssl req -new -x509 -days 3650 -keyout private/ca_key.pem -out certs/ca_cert.pem

Введи пароль и не забудь его.

#openssl req -new -nodes -days 3650 -keyout keys/Kserv.pem -out req/Rserv.pem

Для этой строки важно, чтобы параметр Organization Name совпадал с тем, что ты указал при генерации CA_cert.pem.

#openssl ca -extfile /etc/ssl/openssl.cnf -extensions server -out certs/Cserv.pem -infiles req/Rserv.pem

Тебя зададут пару вопросов, на которые не думая долго отвечай «y». Это было для сервера. Теперь повторим все то же

самое, но для клиента.

#cd /etc/ssl
#rm index.txt
#touch index.txt

#openssl req -new -keyout keys/Khome.pem -out req/Rhome.pem
#openssl ca -out certs/Chome.pem -infiles req/Rhome.pem

на этом месте у тебя возникнет ошибка "TXT_DB error number 2"

После долгих поисков и умственных усилий был найден источник ошибки - файл index.txt.

Теоретически он должен сохранять информацию об удостоверенных сертификатах:
их серийный номер и информацию о корневом сертификате. Фактически,
внеся информацию о первом сертификате, программа не может повторно обновить содержимое файла.
Так что надо ручками удалять его содержимое, или заменять пустым файлом.
то есть убить index.txt после чего
#touch index.txt
кстати надо почитать что делает тач :)

Значительно позже, в инструкции по nix версии я нашел краткое объяснение:
The CA program does not update the 'certificate' file correctly right now.
The serial field should be unique as should the CN/status combination.
The ca program checks these at startup. What still needs to be written is a program to
'regenerate' the data base file from the issued certificate list (and a CRL list).

Что можно перевести на русский язык так: мы знаем почему она не работает "корректно",
но исправить руки не доходят.:)

Создаем ХЭШ-функции для каждого сертификата на сервере для "самоподписных":

#ee /etc/ssl/certs/hash_cert.sh

где:

#!/bin/sh
#
# usage: certlink.sh filename [filename ...]

for CERTFILE in $*; do
# make sure file exists and is a valid cert
test -f "$CERTFILE"|continue
HASH=$(openssl x509 -noout -hash -in "$CERTFILE")
test -n "$HASH"|continue

# use lowest available iterator for symlink
for ITER in 0 1 2 3 4 5 6 7 8 9; do
test -f "${HASH}.${ITER}" && continue
ln -s "$CERTFILE" "${HASH}.${ITER}"
test -L "${HASH}.${ITER}" && break
done
done


#/etc/ssl/certs/hash_cert.sh /etc/ssl/certs/Cserv.pem
#/etc/ssl/certs/hash_cert.sh /etc/ssl/certs/ca_cert.pem

Не забудем про ta.key:

#openvpn --genkey --secret ta.key
#chmod 644 ta.key

Так, и на последок создаем Diffie-Hellman (фиг знает как это по-русски написать) файл

#openssl dhparam -out dh1024.pem 1024
да 25.08.05 08:07  
Автор: cybervlad <cybervlad> Статус: Elderman
<"чистая" ссылка>
> корневой это ca_cert который?
да


> вот как я делаю.. мож ошибки найдешь?
пока все правильно

> самое, но для клиента.
>
> #cd /etc/ssl
> #rm index.txt
> #touch index.txt
а вот это - зря
в этом файле хранится перечень сертификатов. а еще должен быть файл serial, где хранится последний заюзанный серийник.

> на этом месте у тебя возникнет ошибка "TXT_DB error number
> 2"
естественно, ты же грохнул базу (index.txt)

> После долгих поисков и умственных усилий был найден
> источник ошибки - файл index.txt.
:)

> Фактически,
> внеся информацию о первом сертификате, программа не может
> повторно обновить содержимое файла.
Прав-то хватает?

> Так что надо ручками удалять его содержимое, или заменять
> пустым файлом.
фигассе...
не будет оно работать с пустой базой.

> то есть убить index.txt после чего
> #touch index.txt
> кстати надо почитать что делает тач :)
тач меняет время создания файла, если файла нет, создает пустой.

> Значительно позже, в инструкции по nix версии я нашел
> краткое объяснение:
> The CA program does not update the 'certificate' file
> correctly right now.
> The serial field should be unique as should the CN/status
> combination.
> The ca program checks these at startup. What still needs to
> be written is a program to
> 'regenerate' the data base file from the issued certificate
> list (and a CRL list).
у меня в самом начале был грабль с серийником. я посмотрел серийник корневого сертификата, вписал его в файл serial, поменял одну цифру и дальше все заработало. давно это было ;)

> Так, и на последок создаем Diffie-Hellman (фиг знает как
> это по-русски написать) файл
Диффи и Хеллман - это 2 фамилии ;) Алгоритм выработки общего ключа так назван :)
хм.. а у меня все работает :-Р 25.08.05 13:41  
Автор: mentat[bugtraq.ru] <Александр> Статус: Elderman
<"чистая" ссылка>

> > вот как я делаю.. мож ошибки найдешь?
> пока все правильно
>
> > самое, но для клиента.
> >
> > #cd /etc/ssl
> > #rm index.txt
> > #touch index.txt
> а вот это - зря
> в этом файле хранится перечень сертификатов. а еще должен
> быть файл serial, где хранится последний заюзанный
> серийник.

иначе ошибка возникает.

>
> > на этом месте у тебя возникнет ошибка "TXT_DB error
> number
> > 2"
> естественно, ты же грохнул базу (index.txt)

нее.. как раз если грохнуть и тут же новый создать то ошибки не будет!

>
> > После долгих поисков и умственных усилий был найден
> > источник ошибки - файл index.txt.
> :)
>
> > Фактически,
> > внеся информацию о первом сертификате, программа не
> может
> > повторно обновить содержимое файла.
> Прав-то хватает?

у рута? :)))

>
> > Так что надо ручками удалять его содержимое, или
> заменять
> > пустым файлом.
> фигассе...
> не будет оно работать с пустой базой.
>
> > то есть убить index.txt после чего
> > #touch index.txt
> > кстати надо почитать что делает тач :)
> тач меняет время создания файла, если файла нет, создает
> пустой.
>
> > Значительно позже, в инструкции по nix версии я нашел
> > краткое объяснение:
> > The CA program does not update the 'certificate' file
> > correctly right now.
> > The serial field should be unique as should the
> CN/status
> > combination.
> > The ca program checks these at startup. What still
> needs to
> > be written is a program to
> > 'regenerate' the data base file from the issued
> certificate
> > list (and a CRL list).
> у меня в самом начале был грабль с серийником. я посмотрел
> серийник корневого сертификата, вписал его в файл serial,
> поменял одну цифру и дальше все заработало. давно это было
> ;)
>

логично. но грохнуть быстрее :)))

> > Так, и на последок создаем Diffie-Hellman (фиг знает
> как
> > это по-русски написать) файл
> Диффи и Хеллман - это 2 фамилии ;) Алгоритм выработки
> общего ключа так назван :)

вообщем сгенерил я заново все работает
А там нет ничего, что напоминало бы index.txt.old? 02.09.05 10:06  
Автор: SOb Статус: Незарегистрированный пользователь
<"чистая" ссылка>
хм.. ну остальные-то настройки он явно из этого конфига... 23.08.05 12:02  
Автор: mentat[bugtraq.ru] <Александр> Статус: Elderman
<"чистая" ссылка>
хм.. ну остальные-то настройки он явно из этого конфига цеплял - например имена сертифоф и пути...
ну видимо попробую -дэй

> > мой openssl.cnf:
> А ты уверен, что твой софт использует этот конфиг?
> У меня, например, для выпуска сертификатов отдельный скрипт
> используется:


> Кстати, параметр командной строки -days "перебивает"
> установку из конфига.
> В общем, посмотри, как OpenVPN вызывает openssl.
>
> p.s. Еще вспомнил: а корневой сертификат на сколько
> выпущен? Ты в конфиге можешь писать что угодно, но если
> корневик на 30 дней, он подчиненные издаст только в
> пределах своего срока жизни.

корневик это ты который именно имеешь ввиду?
а.. догадываюсь.. попробую копнуть в этом направлении...
1






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2021 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach