05.11.2002 19:37:52SOAP, SSL и одноименные сертификаты Ответов: 5
Alexander V Morozov
Чтобы работать через SOAP по SSL, надо в SOAP установить
Connectorproperty("UseSSL") = True и ConnectorProperty("SSLClientCertificateName") = SSLUserName, где SSLUserName - имя пользователя, в Crypto-Pro одинаковое для ВСЕХ сертификатов одного пользователя. Как обходить ситуацию, когда в хранилище сертификатов Windows установлены несколько сертификатов одного пользователя (соответственно с одинаковыми именами), ведь система для связи будет использовать первый попавшийся сертификат, и нет никаких гарантий что именно он будет действующий.
 
Ответы:
06.11.2002 9:42:12kure
A КриптоПро к именам пользователей никакого отношения не имеет.

Если у вас сертификаты с общими именами, пользуйте другой справочник сертификатов.
06.11.2002 12:13:47Alexander V Morozov
Т.е. как это "не имеет"?? Вы хотите сказать что зарегистрированный в УЦ КриптоПро пользователь может в последствии получить сертификат на любое другое имя?
06.11.2002 12:21:19kure
Му вы же не сказали, что вопрос касается УЦ. Конечно, пользователь имеет имя, и если оно меняется, то это другой пользователь.

Судя по реализации, вы как то фильтруете сертификаты поимени. Ведь их в принципе может быть больше одного.
Если пользуетесь CAPICOM, то решается задача следующим образом, если у вас больше 1 в объекте Certificates, можно пользователя попросить выбрать.
Можно сохранить имя и серийный номер (можно сконфигурить).
06.11.2002 14:13:22Alexander V Morozov
Дубль с е-мейла.
> Судя по реализации, вы как то фильтруете сертификаты поимени. Ведь их в
принципе может быть больше одного.

По серийному номеру. ;-)

> Если пользуетесь CAPICOM, то решается задача следующим образом, если у вас
больше 1 в объекте Certificates, можно пользователя попросить выбрать. Можно
сохранить имя и серийный номер (можно сконфигурить).

А можно об этих "можно" немного поподробнее?
У меня в общем-то одна проблема - имея сертификат обратиться через SOAP к
УЦ, соответственно по SSL, но у объекта SOAP я нашел только одно
ConnectorProperty("SSLClientCertificateName") = SSLUserName, где
SSLUserName - имя пользователя, а никак не сертификат и даже не его серийный
номер.
В принципе я уже думаю сделать-таки отдельное хранилище, в которое временно
помещать сертификат для SSL, но вдруг есть какие-то более простые способы...
:-)
06.11.2002 15:29:06pre
Создание отдельного хранилища, всегда содержащего только один сертификат - это лучшее решение поставленной проблемы. Крипт-Про тут не причем. Такова реализация Microsoft SOAP Toolkit, и XMLHTTP - везде идет выбор сертификата по имени, что нельзя назвать хорошим методом выбора сертификата. Мы сами используем это решение в наших продуктах.