Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Создание ЭЦП (сервера) на предприятии.  (Прочитано 16663 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Dalon

  • Автор темы
  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Кто нибудь создавал ЭЦП (электронная цифровая подпись) на предприятии?
Что бы можно было подписывать и шифровать эл. письма?

gpg ––gen-key
...

Дальше сливаем это все на сервер:
gpg --keyserver <hkp://sks.keyserver.penguin.de> --import <ID>

дальше можно запрашивать из hkp://sks.keyserver.penguin.de ключи.

Можно ли поднять подобный сервер на предприятии (что бы можно было из удаленных офисов подключиться)?
Может есть какие-нибудь другие реализации?
money is good servant but a bad master

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28358
    • Просмотр профиля
Re: Создание ЭЦП (сервера) на предприятии.
« Ответ #1 : 14 Декабря 2009, 15:15:54 »
Это внутренняя корреспонденция будет шифроваться, или внешняя переписка? Если внешняя, то ЭЦП надо получать в аттестованном центре. И там будет далеко не gpg...
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Karl500

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2267
    • Просмотр профиля
Re: Создание ЭЦП (сервера) на предприятии.
« Ответ #2 : 14 Декабря 2009, 15:34:37 »
В принципе, можно и не получать ЭЦП в авторизованном центре, а создать у себя CA (центр сертификации), и уже от его имени выдавать сертификаты. Но при этом все Ваши корреспонденты должны "вручную" установить доверие этому центру.
У нас сделано именно так.

Оффлайн Dalon

  • Автор темы
  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: Создание ЭЦП (сервера) на предприятии.
« Ответ #3 : 14 Декабря 2009, 18:01:56 »
В принципе, можно и не получать ЭЦП в авторизованном центре, а создать у себя CA (центр сертификации), и уже от его имени выдавать сертификаты. Но при этом все Ваши корреспонденты должны "вручную" установить доверие этому центру.
У нас сделано именно так.
вот с этого, а создать у себя CA (центр сертификации), места можно по подробнее.
С чего начать?
Что требуется?
Где почитать о создании собственного центра СА?
money is good servant but a bad master

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28358
    • Просмотр профиля
Re: Создание ЭЦП (сервера) на предприятии.
« Ответ #4 : 14 Декабря 2009, 21:20:37 »
В гугл. Полно пошаговых иснтрукций по созданию самоподписанного сертификата.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Karl500

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2267
    • Просмотр профиля
Re: Создание ЭЦП (сервера) на предприятии.
« Ответ #5 : 14 Декабря 2009, 21:58:49 »
Можно и подробнее :) Завтра с работы выложу все скрипты и конфиги.
Дисклаймер: конфигурировал это я довольно давно, делал "для себя", так что если не заработает - будем разбираться вместе :)

Оффлайн starling13

  • Участник
  • *
  • Сообщений: 239
    • Просмотр профиля
Re: Создание ЭЦП (сервера) на предприятии.
« Ответ #6 : 14 Декабря 2009, 23:57:28 »
OpenSSL+OpenCA > google.com

Но самое главное:
http://www.rg.ru/oficial/doc/federal_zak/1-fz.shtm

Оффлайн Dalon

  • Автор темы
  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: Создание ЭЦП (сервера) на предприятии.
« Ответ #7 : 15 Декабря 2009, 09:50:13 »
В гугл. Полно пошаговых иснтрукций по созданию самоподписанного сертификата.
как делать самоподписаннные сертификаты ссылки я уже нашел.
а вот поднять СЕРВЕР СЕРТИФИКАЦИИ .... вот что интересно.
Можно и подробнее :) Завтра с работы выложу все скрипты и конфиги.
Дисклаймер: конфигурировал это я довольно давно, делал "для себя", так что если не заработает - будем разбираться вместе :)
Жду с нетерпением :).
на чем крутиться? Linux? Unix?
какие пакеты надо? -  пока машину буду  готовить.
money is good servant but a bad master

Оффлайн Karl500

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2267
    • Просмотр профиля
Re: Создание ЭЦП (сервера) на предприятии.
« Ответ #8 : 15 Декабря 2009, 11:08:08 »
Крутится на Linux. Если точнее - на Ubuntu 8.04 LTS.

Итак, вот как это сделано у меня. Вся информация собиралась по инету, часть скриптов корректировалась, часть писалась заново. Что откуда - не помню, так что не обессудьте - ссылок на первоисточники не даю.

Сам сервер сертификации работает на web-сервере компании. Это может быть, и не совсем правильно с точки зрения безопасности, но для меня это вполне достаточно и удобно. Тем более, что доступ к серверу только по ssl с авторизацией пользователей по ldap (у меня вся авторизация на ldap).
Еще одно замечание. web-сервер расположен в DMZ, LDAP-сервер внутри "зеленой" зоны, так что в файрволле прописано правило доступа из web-сервера (ca.company.ru) к внутреннему LDAP-серверу (10.0.0.3) по порту 389.

1. Директория web-сервера /var/www/ca , создаем в ней .htaccess для того, чтобы доступ к серверу был только по ssl:
(Нажмите, чтобы показать/скрыть)

2. Создаем index.html (как пример привожу свой):
(Нажмите, чтобы показать/скрыть)

3. Создаем нужную структуру директорий:
cd /var/www/ca
mkdir internal
mkdir internal/CA_clean
cd internal/CA_clean

Здесь создаем скрипт для работы с ключами пользователей index.php:
(Нажмите, чтобы показать/скрыть)

и .htaccess:
(Нажмите, чтобы показать/скрыть)

cd CA_clean
mkdir ca.db.certs
mkdir SERVERS
mkdir SERVERS/internal

Первая директория - хранилище выданных ключей. Вторая - для ключей серверов. Третья - для пользовательских ключей.

4. Создаем конфигурационный файл для выдаваемых сертификатов ca.conf (нужное поменять на свои значения):
(Нажмите, чтобы показать/скрыть)

5. Скрипты для выдачи и отзыва ключей (далее PASSWORD - пароль, который Вы выбрали для подписывания всех ключей):
Создание CA (certificate authority) createca.sh:
(Нажмите, чтобы показать/скрыть)

Создание ключей сервера createserver.sh:
(Нажмите, чтобы показать/скрыть)

Создание клиентских ключей createclient.sh:
(Нажмите, чтобы показать/скрыть)

Скрипт подписывания ключей сервера sign1.sh:
(Нажмите, чтобы показать/скрыть)

Скрипт подписывания ключей клиента signclient.sh:
(Нажмите, чтобы показать/скрыть)

Упаковка ключей сервера для передачи на сервер bundleserver.sh:
(Нажмите, чтобы показать/скрыть)

Упаковка ключей клиента bundleclient.sh:
(Нажмите, чтобы показать/скрыть)

Конфигурационный файл для отзыва ключей carevoke.config:
(Нажмите, чтобы показать/скрыть)

Скрипт отзыва ключей revoke.sh:
(Нажмите, чтобы показать/скрыть)

Скрипт создания списка отозванных ключей createcrl.sh:
(Нажмите, чтобы показать/скрыть)

Скрипт для web - создание ключа пользователя newcert.php:
(Нажмите, чтобы показать/скрыть)

Скрипт для web - запрос выданного ранее ключа getcert.php:
(Нажмите, чтобы показать/скрыть)

Скрипт для web - отзыв ключа revokecert.php:
(Нажмите, чтобы показать/скрыть)

Скрипт для web - список выданных ключей listcert.php:
(Нажмите, чтобы показать/скрыть)

Если я правильно помню, для создания клиентских ключей больше ничего не нужно (естественно, что директории должны быть доступны по записи web-серверу).

Для создания серверных ключей (если нужно):
1. Создаем папку с именем сервера в директории SERVERS , например
mkdir SERVERS/www.company.ru
и записываем туда файл конфигурации openssl.conf:
(Нажмите, чтобы показать/скрыть)
после чего запускаем скрипты создания ключа сервера и упаковки ключей:

cd /var/www/ca/CA_clean
./createserver.sh www.company.ru
./bundleserver.sh www.company.ru

Да, еще. Для ежедневного формирования списка отозванных ключей у меня в cron запусукается следующее:

1 0 * * * /var/www/ca/internal/CA_clean/createcrl.sh &>/dev/null
2 0 * * * cp /var/www/ca/internal/CA_clean/crl.crl /var/www/ca/crl.crl &> /dev/null

Вроде все... Ну и, еще раз: все делалось для себя, поэтому не все правильно, оптимально и вылизано. :) Но - у меня работает. Если что непонятно - будем разбираться вместе.
« Последнее редактирование: 15 Декабря 2009, 11:39:05 от Karl500 »

Оффлайн Dalon

  • Автор темы
  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: Создание ЭЦП (сервера) на предприятии.
« Ответ #9 : 15 Декабря 2009, 11:35:59 »
отличненько  8),
огромное спасибо! где тут респект поставить?
(потирая руки) прямо ща и начну

Пользователь решил продолжить мысль 16 Декабря 2009, 02:26:39:
Вопрос:
1. Что то я запутался со структурой каталогов.

Цитировать
3. Создаем нужную структуру директорий:
cd /var/www/ca
mkdir internal
mkdir internal/CA_clean
cd internal/CA_clean
получается так:
(Нажмите, чтобы показать/скрыть)
а тут:
Цитировать
Для создания серверных ключей (если нужно):
1. Создаем папку с именем сервера в директории SERVERS , например
mkdir SERVERS/www.company.ru
запускаем скрипты создания ключа сервера и упаковки ключей
cd /var/www/ca/CA_clean
Тогда CA_clean в корне сайта. Или их две?

Дальше:
При попытки запустить
./createserver.sh www.company.ruругаемся что:  www.company.ru is not a directory
запускаем: ./createserver.sh SERVERS/www.company.ruв дирктории появляются 2 файла (сертификат и ключ) server.key и server.csr
но скрипт ругается:
(Нажмите, чтобы показать/скрыть)
Такое впечатление что в системе чегото не хватате: :-\.
выполнил sh createca.shпоявились файлы:
ca.crt
ca.key
ca.pfx
но ошибка ./createserver.sh SERVERS/www.company.ru таже
P.S. Кстати ставлю на FreeBSD 7 + Apache/2.2.6

Взялся по шагам пройтись:
createserver.sh
openssl genrsa -passout pass:passwd -des3 -out $1/server.key.1 2048
openssl rsa -passin pass:passwd -in $1/server.key.1 -out $1/server.key
openssl req -config $1/openssl.conf -new -key $1/server.key -out $1/server.csr
rm -f $1/server.key.1
тут все выполняется и результате в серверной папке мы видим два фала server.key и server.csr
дальше идет выполнение ./sign1.sh $1/server.csr
вот эта (ст:67) openssl ca -batch  -config ca.config -out $CERT -infiles $CSR если ее выполнять в консоли требует пароль, если его ввести то все проходит на ура.
дальше проверяем openssl  verify  -CAfile ca.crt $CERT
и удаляем лишнее...

Нашел ошибки!!!  8)
тут sign1.sh
тут signclient.sh
завтра отпишусь

« Последнее редактирование: 16 Декабря 2009, 18:13:18 от Dalon »
money is good servant but a bad master

Оффлайн starling13

  • Участник
  • *
  • Сообщений: 239
    • Просмотр профиля
Re: Создание ЭЦП (сервера) на предприятии.
« Ответ #10 : 22 Декабря 2009, 20:35:05 »
Если не обязательно, чтобы удостоверяющий центр работал, как WEB-приложение, имел сложную структуру (Центр сертификации, центры регистрации), одним словом если задача в удобном фронтенде для OpenSSL, который позволит:
1. Генерировать ключевые пары
2. Формировать запросы на сертификаты с возможностью использования шаблонов и дополнительных областей применения
3. Выпускать/отзывать сертификаты и формировать списки отзыва
4. Экспортировать и импортировать ключи, запросы, сертификаты, контейнеры на всех этапах.
5. Не смущает необходимость собирать программу из исходников (на 8.04 прекрасно собралась) и английский интерфейс и help

то есть потрясающий "кусок софта" - XCA (C++&Qt 4).
http://xca.sourceforge.net/

На мой взгляд, актуальнейшая задача, чтобы он был включён в репозитории и переведён на русский язык.

А вот TinyCA из репов (Perl&GTK) не так понравился, - но, нужно тестировать как следует.
« Последнее редактирование: 22 Декабря 2009, 22:41:37 от starling13 »

Оффлайн Karl500

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2267
    • Просмотр профиля
Re: Создание ЭЦП (сервера) на предприятии.
« Ответ #11 : 22 Декабря 2009, 20:42:33 »
Dalon,

Прошу прощения - Ваш вопрос не заметил... Ну как, получилось ли? Или есть еще вопросы? Если есть - задавайте. По структуре папок - надеюсь, разобрались?
« Последнее редактирование: 22 Декабря 2009, 20:44:14 от Karl500 »

Оффлайн Dalon

  • Автор темы
  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: Создание ЭЦП (сервера) на предприятии.
« Ответ #12 : 23 Декабря 2009, 11:19:43 »
По структуре разобрался (или разберусь походу).
По поводу неточностей:
тут signclient.sh и тут sign1.sh (скрипты подписывания сертификатов)
(Нажмите, чтобы показать/скрыть)
толи в unix другой комадной это дело надо задавать, толи ... знаний не хватает (а их не хватает :) )
все $dir прописал абсолютно - все встало на свои места.

хм... вот тут http://tldp.org/HOWTO/SSL-Certificates-HOWTO/x120.html походу мануал и моя проблема (дуууумать надо)

и еще в тех же файлах.
сточка в signclient.sh имеет pass
  openssl ca -batch  -config ca.config -passin pass:PASSWORD -out $CERT -infiles $CSR
а в sign1.sh  этого параметра нет
  openssl ca -batch  -config ca.config  -out $CERT -infiles $CSR
есественно когда делался создавался сертификат на домен - ругалось. когда отлаживал построчно то это дело выплыло (спросило пароль).

пока работает. тестирую на почтовом домене... :)

По этой схеме я имею корневой сертификат CA.crt  которым подписываю ВСЕ остальные выданные сертификаты (на домены и личные).
Но все это будет работать в том случае если конечный пользователь установил (ручками!!!) мой CA.crt  и только после этого все сертификаты будут приниматься без вопросов.

В связи с вышеизложенным: как получить или зарегистрироваться как рутовый поставщик сертификатов??
что бы мой сертификат ca.crt принимался без вопросов.

Пользователь решил продолжить мысль 23 Декабря 2009, 12:22:28:
Если не обязательно, чтобы удостоверяющий центр работал, как WEB-приложение, имел сложную структуру (Центр сертификации, центры регистрации), одним словом если задача в удобном фронтенде для OpenSSL, который позволит:
1. Генерировать ключевые пары
2. Формировать запросы на сертификаты с возможностью использования шаблонов и дополнительных областей применения
3. Выпускать/отзывать сертификаты и формировать списки отзыва
4. Экспортировать и импортировать ключи, запросы, сертификаты, контейнеры на всех этапах.
5. Не смущает необходимость собирать программу из исходников (на 8.04 прекрасно собралась) и английский интерфейс и help

то есть потрясающий "кусок софта" - XCA (C++&Qt 4).
http://xca.sourceforge.net/

На мой взгляд, актуальнейшая задача, чтобы он был включён в репозитории и переведён на русский язык.

А вот TinyCA из репов (Perl&GTK) не так понравился, - но, нужно тестировать как следует.


угу есть такое на freebsd это дело в портах (версия правда старовата xca-0.6.4_1) есть. вот оф.сайт http://xca.hohnstaedt.de/ (нем.)
« Последнее редактирование: 23 Декабря 2009, 12:22:28 от Dalon »
money is good servant but a bad master

Оффлайн Karl500

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2267
    • Просмотр профиля
Re: Создание ЭЦП (сервера) на предприятии.
« Ответ #13 : 23 Декабря 2009, 12:32:12 »
Зарегистрироваться как CA - сейчас, если не ошибаюсь, никак. Или это очень сложно.
Я поступил так: на странице http://ca.company.ru есть ссылка на скачку сертификата со строкой "Если Вы хотите доверять... и т.п. - установите этот сертификат", а в подписи у юзеров в письмах даю ссылку на этот сайт.

По паролю - да, т.к. сертификаты на сервера я генерил "вручную", то каждый раз просто вводил этот пароль. А сертификаты юзеров генерятся скриптами, и им этот пароль знать не обязательно. Поэтому он вставлен в скрипт.


Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28358
    • Просмотр профиля
Re: Создание ЭЦП (сервера) на предприятии.
« Ответ #14 : 23 Декабря 2009, 19:40:50 »
Спс за статью... у меня запросы не столь глобальны, но есть необходимость генерить сертификаты.
Помогло :) По крайней мере, избавило от нудного раскапывания инфы самостоятельно.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

Страница сгенерирована за 0.054 секунд. Запросов: 23.