Помогите с сертификатами
От: Petr.com  
Дата: 15.05.07 09:40
Оценка:
У меня задача. Есть сервер и клиент, на котором стоит один браузер. У клиента есть есть сертификат, выданный Windows CA. Какой это должен быть сертификат и как организовать защищенное соединение?
Буду признателен за любую информацию.
Re: Помогите с сертификатами
От: LuZappa  
Дата: 15.05.07 10:14
Оценка:
Здравствуйте, Petr.com, Вы писали:

PC>У меня задача. Есть сервер и клиент, на котором стоит один браузер. У клиента есть есть сертификат, выданный Windows CA. Какой это должен быть сертификат и как организовать защищенное соединение?

PC>Буду признателен за любую информацию.

В каком смысле организовать? Установить используя браузер? Ну например набрать в строке https://... Сертификат должен иметь соответствующее назначение — идентификация удаленного компьютера.

Если же речь идет об установлении защищенного соединения из своей программы, то можно по-разному, например через wininet либо по-взрослому, через SSPI, тут ниже было...
Re[2]: Помогите с сертификатами
От: Petr.com  
Дата: 15.05.07 11:44
Оценка:
Здравствуйте, LuZappa, Вы писали:

LZ>Здравствуйте, Petr.com, Вы писали:


PC>>У меня задача. Есть сервер и клиент, на котором стоит один браузер. У клиента есть есть сертификат, выданный Windows CA. Какой это должен быть сертификат и как организовать защищенное соединение?

PC>>Буду признателен за любую информацию.

LZ>В каком смысле организовать? Установить используя браузер? Ну например набрать в строке https://... Сертификат должен иметь соответствующее назначение — идентификация удаленного компьютера.


LZ>Если же речь идет об установлении защищенного соединения из своей программы, то можно по-разному, например через wininet либо по-взрослому, через SSPI, тут ниже было...


Боюсь вы меня неправильно поняли. В IE во вкладке Tools->Internet Options->Content->Certificates лежат сертификаты. На сервере IIS есть в свойствах сайта есть в Properties->Directory Security->Secure Communications->Edit есть пункт Require Client Certificates. Правильно ли я понимаю что, импортировав в браузер сертификат и указав сведения о нем на сервере, можно добиться того что сервер будет определять что с ним соединяется владелец определенного сертификата, а не кто-то иной?
Re[3]: Помогите с сертификатами
От: LuZappa  
Дата: 15.05.07 12:15
Оценка:
Здравствуйте, Petr.com, Вы писали:

[...]

PC>Боюсь вы меня неправильно поняли. В IE во вкладке Tools->Internet Options->Content->Certificates лежат сертификаты. На сервере IIS есть в свойствах сайта есть в Properties->Directory Security->Secure Communications->Edit есть пункт Require Client Certificates. Правильно ли я понимаю что, импортировав в браузер сертификат и указав сведения о нем на сервере, можно добиться того что сервер будет определять что с ним соединяется владелец определенного сертификата, а не кто-то иной?


Так я так и сказал, что не понял... Значит так, в случае IE это будет выглядеть примерно таким образом:
— сначала IE установит соединение и попробует установить SSL от имени анонима;
— сервер пришлет ему запрос на обновление контекста соединения, на который IE должен будет снова ответить анонимным контекстом или контекстом конкретного сертификата(в этом месте обычно у IE выскакивает окошко выбора сертификата);
— сервер получит новый контекст и в зависимости от его содержания и настроек(значения того самого флажка, маппинга и т.п.) сделает выводы о продолжении работы или разрыве соединения.

Вот если коротенько так. SSL может работать в разных режимах: только кодирование, идентификация одного или обоих участников соединения. Так что понимаете все правильно.
Re[3]: Помогите с сертификатами
От: Андрей Коростелев Голландия http://www.korostelev.net/
Дата: 15.05.07 12:20
Оценка:
Здравствуйте, Petr.com, Вы писали:

PC>В IE во вкладке Tools->Internet Options->Content->Certificates лежат сертификаты. На сервере IIS есть в свойствах сайта есть в Properties->Directory Security->Secure Communications->Edit есть пункт Require Client Certificates. Правильно ли я понимаю что, импортировав в браузер сертификат и указав сведения о нем на сервере, можно добиться того что сервер будет определять что с ним соединяется владелец определенного сертификата, а не кто-то иной?


Так как IE использует системное хранилище сертификатов, клиентский сертификат должен быть импортирован в хранилище "MY"(Personal).
-- Андрей
Re[4]: Помогите с сертификатами
От: Petr.com  
Дата: 15.05.07 12:25
Оценка:
Здравствуйте, LuZappa, Вы писали:

LZ>Здравствуйте, Petr.com, Вы писали:


LZ>[...]


PC>>Боюсь вы меня неправильно поняли. В IE во вкладке Tools->Internet Options->Content->Certificates лежат сертификаты. На сервере IIS есть в свойствах сайта есть в Properties->Directory Security->Secure Communications->Edit есть пункт Require Client Certificates. Правильно ли я понимаю что, импортировав в браузер сертификат и указав сведения о нем на сервере, можно добиться того что сервер будет определять что с ним соединяется владелец определенного сертификата, а не кто-то иной?


LZ>Так я так и сказал, что не понял... Значит так, в случае IE это будет выглядеть примерно таким образом:

LZ>- сначала IE установит соединение и попробует установить SSL от имени анонима;
LZ>- сервер пришлет ему запрос на обновление контекста соединения, на который IE должен будет снова ответить анонимным контекстом или контекстом конкретного сертификата(в этом месте обычно у IE выскакивает окошко выбора сертификата);
LZ>- сервер получит новый контекст и в зависимости от его содержания и настроек(значения того самого флажка, маппинга и т.п.) сделает выводы о продолжении работы или разрыве соединения.

LZ>Вот если коротенько так. SSL может работать в разных режимах: только кодирование, идентификация одного или обоих участников соединения. Так что понимаете все правильно.


Спасибо. Скажите мне пожалуйста как мне сделать такой сертификат и грамотно указать на него серверу. Если можете скажите также — можно ли сформировать такой сертификат программным путем (из собственного приложения). Буду благодарен за любую информацию либо ссылки на нее.
Re[5]: Помогите с сертификатами
От: LuZappa  
Дата: 15.05.07 12:36
Оценка: 2 (1)
Здравствуйте, Petr.com, Вы писали:

[...]

PC>Спасибо. Скажите мне пожалуйста как мне сделать такой сертификат и грамотно указать на него серверу. Если можете скажите также — можно ли сформировать такой сертификат программным путем (из собственного приложения). Буду благодарен за любую информацию либо ссылки на нее.


Ну например установить центр сертификации от MS у себя и получить у него сертификаты Программным путем можно все, но точно я не помню, смотрите CryptoAPI в MSDN.
Re[4]: Помогите с сертификатами
От: Petr.com  
Дата: 16.05.07 04:30
Оценка:
Здравствуйте, Андрей Коростелев, Вы писали:

АК>Здравствуйте, Petr.com, Вы писали:


PC>>В IE во вкладке Tools->Internet Options->Content->Certificates лежат сертификаты. На сервере IIS есть в свойствах сайта есть в Properties->Directory Security->Secure Communications->Edit есть пункт Require Client Certificates. Правильно ли я понимаю что, импортировав в браузер сертификат и указав сведения о нем на сервере, можно добиться того что сервер будет определять что с ним соединяется владелец определенного сертификата, а не кто-то иной?


АК>Так как IE использует системное хранилище сертификатов, клиентский сертификат должен быть импортирован в хранилище "MY"(Personal).


Андрей, а не подскажите мне — как создать такой сертификат. Мне чем нужно пользоваться makecert или certreq и какие аргументы вводить?
Re[5]: Помогите с сертификатами
От: Андрей Коростелев Голландия http://www.korostelev.net/
Дата: 16.05.07 06:18
Оценка:
Здравствуйте, Petr.com, Вы писали:

PC>Здравствуйте, Андрей Коростелев, Вы писали:


АК>>Здравствуйте, Petr.com, Вы писали:


PC>Андрей, а не подскажите мне — как создать такой сертификат. Мне чем нужно пользоваться makecert или certreq и какие аргументы вводить?


Сертификат должен быть выдан Certificate Authority, которому доверяет как клиент, так и сервер. По вопросу инструментария, мы пользовали platform-independent OpenSSL для генерации дерева сертификатов + platform-specific API для их импорта в хранилище.
-- Андрей
Re[6]: Помогите с сертификатами
От: Petr.com  
Дата: 16.05.07 06:26
Оценка:
Здравствуйте, Андрей Коростелев, Вы писали:

АК>Здравствуйте, Petr.com, Вы писали:


PC>>Здравствуйте, Андрей Коростелев, Вы писали:


АК>>>Здравствуйте, Petr.com, Вы писали:


PC>>Андрей, а не подскажите мне — как создать такой сертификат. Мне чем нужно пользоваться makecert или certreq и какие аргументы вводить?


АК>Сертификат должен быть выдан Certificate Authority, которому доверяет как клиент, так и сервер. По вопросу инструментария, мы пользовали platform-independent OpenSSL для генерации дерева сертификатов + platform-specific API для их импорта в хранилище.


A где их можно взять?
Re[7]: Помогите с сертификатами
От: Андрей Коростелев Голландия http://www.korostelev.net/
Дата: 16.05.07 08:13
Оценка:
Здравствуйте, Petr.com, Вы писали:

PC>Здравствуйте, Андрей Коростелев, Вы писали:


АК>>Сертификат должен быть выдан Certificate Authority, которому доверяет как клиент, так и сервер. По вопросу инструментария, мы пользовали platform-independent OpenSSL для генерации дерева сертификатов + platform-specific API для их импорта в хранилище.


PC>A где их можно взять?


OpenSSL — http://www.openssl.org, для Windows можно взять прекомпилированные бинарники в виде инсталлятора здесь. Доступаться к OpenSSL можно как через CLI, так и через С API.
Главные плюсы библиотеки — поддержка стандартов и кросс-платформенность.

Для работы с хранилищем сертификатов следует пользовать API специфичное для этого хранилища. Например, платформо-независимый Firefox таскает свое хранилищe за собой и доступается к нему через NSS API, платформенно-родные браузеры (IE в Windows, Safari в Mac OS X) используют системное хранилище сертификатов и, соответственно, пользуют системный API для доступа. Для Windows стандартный вариант — использовать Crypto API. Посмотри ф-и CertOpenStore, CertAddCertificateContextToStore итп.
-- Андрей
Re[6]: Помогите с сертификатами
От: Petr.com  
Дата: 16.05.07 11:22
Оценка:
Здравствуйте, LuZappa, Вы писали:

LZ>Здравствуйте, Petr.com, Вы писали:


LZ>[...]


PC>>Спасибо. Скажите мне пожалуйста как мне сделать такой сертификат и грамотно указать на него серверу. Если можете скажите также — можно ли сформировать такой сертификат программным путем (из собственного приложения). Буду благодарен за любую информацию либо ссылки на нее.


LZ>Ну например установить центр сертификации от MS у себя и получить у него сертификаты Программным путем можно все, но точно я не помню, смотрите CryptoAPI в MSDN.


Я создал сертификат через Центр Сертификации, но он не ставится в Personal. Я явно засовываю его туда через менеджер сертификатов, но он все равно находится в другой папке. Пожалуйста подскажите -почему?
Re[7]: Помогите с сертификатами
От: Андрей Коростелев Голландия http://www.korostelev.net/
Дата: 16.05.07 12:07
Оценка:
Здравствуйте, Petr.com, Вы писали:

PC>Здравствуйте, LuZappa, Вы писали:


LZ>>Здравствуйте, Petr.com, Вы писали:


PC>Я создал сертификат через Центр Сертификации, но он не ставится в Personal. Я явно засовываю его туда через менеджер сертификатов, но он все равно находится в другой папке. Пожалуйста подскажите -почему?


В Personal по-хорошему должны идти сертификаты, для которых существует ассоцированный закрытый ключ. IE, например, такой сертификат даже не покажет (в отличие от центра сертификации). Поэтому при создании сертификата запакуй его вместе с закрытым ключом в какой-нибудь PKCS#12 (pfx) и тогда импортируй.
-- Андрей
Re[8]: Помогите с сертификатами
От: Petr.com  
Дата: 16.05.07 12:21
Оценка:
Здравствуйте, Андрей Коростелев, Вы писали:

АК>Здравствуйте, Petr.com, Вы писали:


PC>>Здравствуйте, LuZappa, Вы писали:


LZ>>>Здравствуйте, Petr.com, Вы писали:


PC>>Я создал сертификат через Центр Сертификации, но он не ставится в Personal. Я явно засовываю его туда через менеджер сертификатов, но он все равно находится в другой папке. Пожалуйста подскажите -почему?


АК>В Personal по-хорошему должны идти сертификаты, для которых существует ассоцированный закрытый ключ. IE, например, такой сертификат даже не покажет (в отличие от центра сертификации). Поэтому при создании сертификата запакуй его вместе с закрытым ключом в какой-нибудь PKCS#12 (pfx) и тогда импортируй.


Андрей, подскажите пожалуйста, как это сделать?
Re[9]: Помогите с сертификатами
От: Андрей Коростелев Голландия http://www.korostelev.net/
Дата: 16.05.07 13:04
Оценка: 3 (1)
Здравствуйте, Petr.com, Вы писали:

PC>Здравствуйте, Андрей Коростелев, Вы писали:

АК>>Поэтому при создании сертификата запакуй его вместе с закрытым ключом в какой-нибудь PKCS#12 (pfx) и тогда импортируй.

PC>Андрей, подскажите пожалуйста, как это сделать?


openssl req — запрашиваешь
openssl ca — подписываешь
openssl pkcs12 — запаковываешь

Тут все по шагам расписано http://www.flatmtn.com/computer/Linux-SSLCertifcatesPKCS12.html
-- Андрей
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.