22 марта, 2014
0 Comments
1 category
Никогда, никогда не делайте revoke сертификату главного админа, даже, если на 100% уверены в том, что новый везде прописан и всё сделано правильно. 😮 Сначала надо немного поработать с новым и проверить, а всё ли в порядке…
Ну, это так, для затравки. Мне надоело вспоминать и набирать ручками команды для замены “протухающих” сертификатов. Посему, скриптик:
#!/bin/bash # # -- if [ "$#" -lt 3 ] ; then echo "Usage: $0 isRecover <host_name>" echo "isRecover - 'y' or 'n'" exit 1 fi wDir=${HOME}/work/p12/pem sOU=$2 hName=$3 uName="sa_${sOU}_${hName}" cd ${HOME} if [ $1 == "y" ] ; then echo "Recovering key = YES" ./ejbca/bin/ejbca.sh ra keyrecovernewest ${uName} else echo "Recovering key = No" ./ejbca/bin/ejbca.sh ra setendentitystatus ${uName} 10 fi ./ejbca/bin/ejbca.sh ra setclearpwd ${uName} <пароль> ./ejbca/bin/ejbca.sh batch ${uName} ./bin/prepare.apache ${sOU} ${hName} exit 0
- Первый параметр – нужно ли восстанавливать сохранённые ключи шифрования или сгенерировать новые. Для entity должна быть выставлена соответствующая опция.
- Второй – имя OU. Я, для “сервисов”, использую отдельную ветку дерева в ldap. Мне так удобнее.
- Последний – хост. Два последних параметра в сумме дают имя пользователя в ejbca.
Теперь скрипт prepare.apache. Он готовит token и выставляет права доступа.
- Каталог ${HOME}/work/p12/pem/${OU} должен быть уже создан.
- Копирую “по месту” ручками.
- Для apache в настройках использую -token.pem файл.
- Поскольку у меня используется setuid для каждого виртуального хоста, то менять владельца для token файла не надо. Он читается при старте, когда разбирается конфиг (от root).
#!/bin/bash # # -- if [ "$#" -lt 2 ] ; then echo "Usage: $0 <host_name>" exit 1 fi wDir=${HOME}/work/p12/pem sOU=$1 hName=$2 cd ${wDir} if test ! -d $sOU; then echo "OU=$sOU - Directory $wDir/$sOU not found. Check certificate." exit 1 fi echo -n "OU=$sOU, " rm -f $sOU/${hName}-token.pem $sOU/${hName}-Key.pem.raw $sOU/${hName}.pem $sOU/${hName}-Key.pem cp ${hName}-Key.pem ${hName}.pem $sOU cd $sOU /usr/bin/openssl rsa -in ${hName}-Key.pem -out ${hName}-Key.pem.raw >/dev/null cat ${hName}.pem >${hName}-token.pem echo >>${hName}-token.pem cat ${hName}-Key.pem.raw >>${hName}-token.pem chmod 400 ${hName}-Key.pem ${hName}-Key.pem.raw ${hName}-token.pem chmod 444 ${hName}.pem echo exit 0
Надо бы ещё, конечно, в первый скрипт вставить проверку на возможность key recovery. Чтоб само брало из базы. Но, лень. Потом.
Category: EJBCA