Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
|
А ты уверен, что твой софт использует этот конфиг? 23.08.05 11:49 Число просмотров: 1982
Автор: 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 дней, он подчиненные издаст только в пределах своего срока жизни.
|
<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 дней, он подчиненные издаст только в > пределах своего срока жизни.
корневик это ты который именно имеешь ввиду?
а.. догадываюсь.. попробую копнуть в этом направлении...
|
|
|