Защита веб-службы ASP.NET с использованием SSL без выделенного IP-адреса на сервере. - PullRequest
3 голосов
/ 21 февраля 2010

Мне нужно защитить связь между моим приложением и моим веб-сервисом. Я являюсь владельцем приложения и веб-службы, и мне было интересно, возможно ли использовать HTTPS для этого.

Мне не нужен сертификат, чтобы доказать себе, кто я на самом деле (!), Поэтому я не хочу покупать SSL-сертификат в Центре сертификации. Мне просто нужно убедиться, что никто не сможет перехватить данные, которые я передаю как параметры WebMethod; Могу ли я создать бесплатный сертификат и использовать его для безопасного общения?

Еще одна вещь: я не хочу, чтобы меня заставляли получать выделенный публичный IP-адрес для моей веб-службы, поскольку она размещена на общем веб-сервере.

Ответы [ 4 ]

2 голосов
/ 22 февраля 2010

Определенно это выполнимо, но зависит от нескольких условий.

  • Создайте свой собственный самозаверяющий сертификат. Отсутствие центра сертификации не будет иметь значения в вашем случае, потому что ваше приложение является вашим собственным потребителем.
  • Хост должен позволять вам настроить свой сайт IIS с сертификатом SSL. Надеюсь, инструменты, которые они предоставляют, достаточно хороши.
  • Общий IP-адрес вашего веб-сайта не может иметь более одного сертификата. Теперь вы зависите от своего хоста, чтобы не переносить ваш сайт на другой IP. В то время он может иметь или не иметь сертификат SSL на другом сайте. В основном - побеждает первый. IP не может иметь более одного защищенного сертификатом веб-сайта.
0 голосов
/ 21 февраля 2010

Вы не можете использовать сертификат SSL (самостоятельно подписанный или иным образом) без выделенного IP-адреса. Если ваш провайдер виртуального хостинга не предоставит общий SSL-сертификат на ваш IP, вам нужно будет приобрести выделенный IP-адрес.

0 голосов
/ 21 февраля 2010

Если вы хотите решить эту проблему, вы можете использовать самозаверяющий сертификат и иметь третичный сервер (или самозаверяющий сервер IIS) в качестве собственного центра сертификации. Это позволило бы вам бесплатно создать собственный сертификат, а затем, имея контроль над серверами, вы можете просто добавить свой сервер CA в качестве доверенного и промежуточного корневого центра сертификации.

Создание центров сертификации и самозаверяющих сертификатов SSL

0 голосов
/ 21 февраля 2010

Есть много статей , показывающих, как создать и установить самозаверяющий сертификат в IIS. Необходимо помнить, что этот сертификат недействителен, так как он не доставлен центром сертификации. После того, как вы установите сертификат на стороне сервера, вы должны указать клиенту принять недействительный сертификат, используя свойство ServerCertificateValidationCallback :

ServicePointManager.ServerCertificateValidationCallback = 
    (sender, certificate, chain, sslPolicyErrors) => true;
...