> вот как я делаю.. мож ошибки найдешь? пока все правильно
> самое, но для клиента. > > #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 фамилии ;) Алгоритм выработки общего ключа так назван :)
неприятные :((
вообщем в кратце так:
мой 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
Соответственно, юзается конфиг 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 > > это клево но он дает только "ОК" а мне б дату до которой он > валиден и время с которого он валиден... это возможно? конечно :)
man openssl не пробовал? :)
или openssl x509 без параметров.
Полная инфа о сертификате:
openssl x509 -text < твой_файл.pem
Можно попросить показать конкретное поле, например дату окончания действия:
openssl x509 -enddate < твой_файл.pem
> p.s. Еще вспомнил: а корневой сертификат на сколько > выпущен? Ты в конфиге можешь писать что угодно, но если > корневик на 30 дней, он подчиненные издаст только в > пределах своего срока жизни. корневой это ca_cert который?
на этом месте у тебя возникнет ошибка "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).
Что можно перевести на русский язык так: мы знаем почему она не работает "корректно",
но исправить руки не доходят.:)
Создаем ХЭШ-функции для каждого сертификата на сервере для "самоподписных":
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
> вот как я делаю.. мож ошибки найдешь? пока все правильно
> самое, но для клиента. > > #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 Статус: Незарегистрированный пользователь
хм.. ну остальные-то настройки он явно из этого конфига цеплял - например имена сертифоф и пути...
ну видимо попробую -дэй
> > мой openssl.cnf: > А ты уверен, что твой софт использует этот конфиг? > У меня, например, для выпуска сертификатов отдельный скрипт > используется:
> Кстати, параметр командной строки -days "перебивает" > установку из конфига. > В общем, посмотри, как OpenVPN вызывает openssl. > > p.s. Еще вспомнил: а корневой сертификат на сколько > выпущен? Ты в конфиге можешь писать что угодно, но если > корневик на 30 дней, он подчиненные издаст только в > пределах своего срока жизни.
корневик это ты который именно имеешь ввиду?
а.. догадываюсь.. попробую копнуть в этом направлении...