2010-06-16 3 views
1

Я сделал приложение Silverlight 3.0, которое общается с сервером rpc xml по https. Все приложение будет работать в среде LAN, где сервер может быть установлен на разных компьютерах, и клиент будет работать на одном компьютере. Я использую самоподписанный сертификат, который генерируется против ip сервера, и мне нужно поставить доверенные корневые сертификаты Authorties на клиентской машине. но если я хочу сообщить второй сервер, тогда на клиентской машине должен быть установлен другой сертификат на ip этого конкретного сервера. Короче, мне нужно установить n сертификатов на клиенте, если я хочу обмениваться n разными серверами, что невозможно для меня , как я могу сделать это с помощью одного сертификата по локальной сети. Сертификаты генерируются против ip или имени хоста сервера, есть ли способ пройти проверку SSL-сертификата? напримерSSL-сертификат для LAN enviornment

ServicePointManager.ServerCertificateValidationCallback = MyCertHandler; 

static bool MyCertHandler(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors error) 
{ 
// Ignore errors 
return true; 
} 

но вышеуказанный код не может использоваться в Silverlight? любая помощь?

ответ

1

Не используйте самоподписанный сертификат, и если вы можете игнорировать аутентификацию, тогда нет веских оснований для использования ssl.

Для избежания самоподписавшихся сертификатов: Настройте персональный CA (чрезвычайно прост в использовании с CA от Microsoft). Затем выдайте сертификаты сервера из собственного ЦС и дайте сертификат ЦС каждому из серверов в качестве доверенного корня. Тогда вы в конечном итоге с установкой, как:

Cert цепи:

  • Подписанный B
  • Подписанный C
  • Подписанный D
  • Подписанный E

развертывания :

  • Сервер В получает А и В
  • Сервер С получает А и С
  • Server D получает и D
  • Сервер Е получает А и Е

Затем клиент подключения в любой из этих серверов может сопоставить общее имя с адресом, к которому он подключен, действительный диапазон дат от его собственного теперь времени и построить цепочку для проверки на «CA Cert A» для каждого сервера.

(вот случайная стартовая ссылка для настройки собственного CA-сервера.) link text

Если вы пытаетесь использовать Selfsigned вы endup с

Cert цепи:

  • B подписали B
  • C подписали C
  • D подписали D
  • E подписали E

Cert Развертывание

  • Сервер В получает B, C, D, E
  • Сервер С получает B, C, D, E
  • Server D получает B, C, D, E
  • сервера E получает B, C, D, E
Смежные вопросы