информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Атака на InternetГде водятся OGRыПортрет посетителя
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
 Умер Никлаус Вирт 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / sysadmin
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
да 25.08.05 08:07  Число просмотров: 2091
Автор: 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-2024 Dmitry Leonov   Page build time: 1 s   Design: Vadim Derkach