В каком хранилище сертификатов мы должны хранить сертификаты сервера - PullRequest
0 голосов
/ 24 ноября 2010

Предположим, система S владеет сертификатом C.Следующая цитата предполагает, что если C будет использоваться приложениями-службами S's для аутентификации клиентов, то C должно храниться в LCS.Но если C будет использоваться клиентскими приложениями S's для аутентификации в службе, то C должно храниться в CUS:

• Хранилище локальных компьютеров (LCS)).Он содержит сертификаты, доступные для машинных процессов, таких как ASP.NET.Используйте это расположение для хранения сертификатов, которые аутентифицируют сервер для клиентов.

• Текущий пользовательский магазин (CUS).Интерактивные приложения обычно размещают здесь сертификаты для текущего пользователя компьютера.Если вы создаете клиентское приложение, именно здесь вы обычно размещаете сертификаты, которые аутентифицируют пользователя в сервисе.

Но следующая цитата в некотором роде отрицает вышеприведенное, поскольку говорит, что сервис S'sвстроенный в приложение, работающее под учетной записью пользователя, сертификат C должен храниться внутри CUS

Выбор места для хранения сертификата зависит от того, как и когда работает служба или клиент.Применяются следующие общие правила:

• Если служба является службой Windows, служба, работающая в режиме «сервер» без какого-либо пользовательского интерфейса под учетной записью сетевой службы, использует хранилище локального компьютера.Обратите внимание, что для установки сертификатов в хранилище локального компьютера требуются права администратора.

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

а) что подразумевается под сервисом, встроенным в приложение ?Служба WCF работает в сети.консольное приложение или внутри приложения Asp.Net считается встроенным?

б) И почему, если приложение (которое встраивает службу WCF) запускается под учетной записью пользователя (даже если эта учетная запись имеет права администратора), сертификат должен находиться в CUS?Означает ли это, что если он расположен в LCS, то S (клиентское приложение, пытающееся отправить этот сертификат на сервер) не сможет найти сертификат?

спасибо

1 Ответ

2 голосов
/ 25 ноября 2010

a) Служба WCF, работающая в консольном приложении .NET, будет считаться «встроенной» службой в соответствии с этим описанием.Это также называется службой самообслуживания.

Если служба работает в приложении ASP.Net, то это зависит от того, какой процесс размещает приложение ASP.Net, но обычно это считаетсяслужба, работающая в режиме «сервера».

b) Для того чтобы служба аутентифицировалась для клиентов, пользователю, под которым запускается процесс службы, требуется доступ к закрытому ключу, соответствующему сертификату.Наиболее удобный способ сделать это - установить сертификат (с закрытым ключом) в хранилище сертификатов пользователя, который запускает процесс.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...