Сертификат разработчика против приобретенного сертификата для WCF - PullRequest
5 голосов
/ 24 марта 2010

Я понимаю, что если я хочу использовать аутентификацию в WCF, мне нужно установить на моем сервере сертификат, который WCF будет использовать для шифрования передачи данных между моим сервером и клиентом.

В целях разработки я считаю, что могу использовать утилиту makecert.exe. сделать сертификат разработки.

Какое худшее может произойти, если я использую этот сертификат в производственной среде?

и ...

Почему я не могу использовать этот сертификат в производственной среде?

и ...

Что на самом деле собирается делать сертификат в этом сценарии?

[Редактировать: Добавлен еще один вопрос]

наконец-то ...

В случае, когда на веб-сайте установлен сертификат для обеспечения поддержки HTTPS, может ли этот же сертификат использоваться и для служб WCF?

Примечание к моему приложению: это клиент и сервер NetTCP. Пользователи будут входить в систему, используя то же имя пользователя и пароль, которые они используют для веб-сайта, который передается в виде открытого текста. Я был бы рад передать u / n + p / w в открытом тексте в WCF, но это не разрешено платформой, и сертификат должен быть на месте. Однако я не хочу покупать сертификат из-за бюджетных ограничений!

(Извините за возможно глупый вопрос, но я действительно не понимаю этого, поэтому приветствую некоторую помощь в этом).

Ответы [ 3 ]

9 голосов
/ 24 марта 2010

Что ж, ничего особенного не произойдет, если вы используете сертификат разработчика в производственной среде, ведь сертификат - это сертификат, а шифрование, которое он обеспечивает, такое же, как и любой коммерческий сертификат.

Однако, поскольку сертификат не подписан доверенным центром сертификации, он не гарантирует клиенту, что вы - это вы . Позвольте мне выразить это по-другому: если бы ваша служба была простой веб-страницей, браузер сказал бы, что сертификат недействителен.

Сертификат для предоставления SSL на веб-сервере - это сертификат, который сообщает клиенту, что домен является доверенным и проверенным доменом, и что центр сертификации может поручиться за него.

Итак, сертификат, выданный makecert.exe, будет таким же, как если бы вы написали свое имя на листе бумаги и сказали, скажем, сотруднику закона, что это ваши водительские права.

4 голосов
/ 24 марта 2010
  1. Сертификат должен быть выдан так называемым центром сертификации для доверия. Самозаверяющие сертификаты (созданные makecert и т. Д.) Не являются доверенными, и все, кто зайдет на ваш сайт, получат предупреждение «Недействительный сертификат» (более конкретно: «Сертификат не является доверенным, поскольку он самоподписан»). Итак, в худшем случае , люди не пойдут на ваш сайт, потому что они ему не доверяют.

  2. Вы можете использовать самозаверяющий сертификат в производстве, но это не рекомендуется по причинам, указанным выше.

  3. Сертификат используется для установления безопасного соединения (HTTPS) между клиентом и сервером. Кроме того, он предназначен для проверки личности сервера. Идентификация вашего сервера не может быть гарантирована, если ваш сертификат самозаверяющий.

  4. В IIS, если вы устанавливаете сертификат на веб-сайте, все службы WCF, развернутые на этом веб-сайте, могут использовать этот сертификат.

Короче говоря, используйте самозаверяющий сертификат для разработки (посмотрите на инструмент под названием SSL Diagnostics для простой генерации сертификата в IIS), но действительно используйте производственный сертификат для производства!

3 голосов
/ 24 марта 2010

«Что может случиться на худшем, если я использую этот сертификат в производственной среде»? Безопасность не будет выполнена, и вся ваша служба будет недоступна.

«Почему я не могу использовать этот сертификат в производственной среде?»
Центр сертификации, указанный в созданном вами сертификате, не известен клиентам, поэтому сертификат не может быть проверен / использован.

"Что на самом деле собирается делать сертификат в этом сценарии?" Открытый ключ используется клиентами для шифрования связи. Это гарантирует, что только владелец закрытого ключа (в данном случае сервер) может дешифровать его снова (пары приват-открытый ключ имеют асимметричное шифрование)

Надеюсь, это поможет,

...