SSL-сертификат для локальной сети - PullRequest
1 голос
/ 16 июня 2010

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

ServicePointManager.ServerCertificateValidationCallback = MyCertHandler; 

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

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

1 Ответ

1 голос
/ 10 июля 2010

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

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

Цепочки сертификатов:

  • A, подписанный B
  • С подписью C
  • A, подписанный D
  • подписанный E

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

  • Сервер B получает A и B
  • Сервер C получает A и C
  • Сервер D получает A и D
  • Сервер E получает A и E

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

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

Если вы попытаетесь использовать Selfsigned, вы получите

Цепочки сертификатов:

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

Cert Deployment

  • Сервер B получает B, C, D, E
  • Сервер C получает B, C, D, E
  • Сервер D получает B, C, D, E
  • Сервер E получает B, C, D, E
...