Примеры уровня канала безопасности
В следующих примерах показана безопасность на уровне канала
Транспортная безопасность Windows через TCP: клиент: RequestReplyTcpClientWithWindowsTransportSecurityExample, сервер: RequestReplyTcpServerWithWindowsTransportSecurityExample.
Безопасность транспорта Windows по именованным каналам: клиент: RequestReplyNamedPipesClientWithWindowsTransportSecurityExample, сервер: RequestReplyNamedPipesServerWithWindowsTransportSecurityExample.
Безопасность транспорта SSL: клиент: HttpClientWithSslExample, сервер: HttpServerWithSslExample.
Имя пользователя по протоколу безопасности смешанного режима SSL: клиент: HttpClientWithUsernameOverSslExample, сервер: HttpServerWithUsernameOverSslExample.
Имя пользователя по протоколу безопасности смешанного режима SSL: клиент: HttpClientWithKerberosOverSslExample, server: HttpServerWithKerberosOverSslExample.
Имя пользователя через безопасность смешанного режима SSL: MetadataImportWithUsernameOverSslExample. Выданный токен для безопасности смешанного режима SSL: MetadataImportWithIssuedTokenOverSslExample. Сертификат X509 в смешанном режиме безопасности через SSL: MetadataImportWithX509OverSslExample.
Настройка One-Time для образцов безопасности
Чтобы запустить примеры безопасности WWSAPI, необходимо настроить сертификаты клиента и сервера для SSL, а также учетную запись локального пользователя для проверки подлинности заголовка HTTP. Перед началом работы вам потребуется следующее:
- MakeCert.exe (доступно в пакете SDK для Windows 7.)
- CertUtil.exe или CertMgr.exe (CertUtil.exe доступны в пакетах SDK для Windows, начиная с Windows Server 2003. CertMgr.exe доступен в пакете SDK для Windows 7. Вам нужен только один из этих инструментов.)
- HttpCfg.exe: (Это необходимо только в том случае, если вы используете Windows 2003 или Windows XP. Это средство доступно в средствах поддержки Windows XP с пакетом обновления 2 (SP2), а также поставляется с компакт-диском средств набора ресурсов Windows Server 2003.)
Если вы получите примеры WWSAPI, установив пакет SDK для Windows 7, вы можете найти MakeCert.exe и CertMgr.exe в разделе %ProgramFiles%\Microsoft SDK\Windows\v7.0\bin.
Выполните следующую пятишаговую настройку из командной строки (с повышенными привилегиями при использовании Windows Vista и более поздних версий):
- Создайте самозаверяющий сертификат, чтобы быть удостоверяющим центром (CA) или издателем: MakeCert.exe -ss корневой -sr LocalMachine -n "CN=Fake-Test-CA" -cy авторитет -r -sk "CAKeyContainer"
- Создайте сертификат сервера с помощью предыдущего сертификата в качестве издателя: MakeCert.exe -ss My -sr LocalMachine -n "CN=localhost" -sky exchange -is Root -ir LocalMachine -in Fake-Test-CA -sk "ServerKeyContainer"
- Найдите отпечаток (40-символьный хэш SHA-1) сертификата сервера, выполнив любую из следующих команд и найдите сертификат с именем localhost с издателем Fake-Test-CA:
- CertUtil.exe -store My localhost
- CertMgr.exe -s -r LocalMachine My
- Зарегистрируйте в HTTP.SYS отпечаток сертификата сервера без пробелов.
- В Windows Vista и выше (параметр appid — произвольный GUID): Netsh.exe http add sslcert ipport=0.0.0.0:8443 appid={00001111-aaaa-2222-bbbb-3333cccc4444} certhash=<40CharacterThumbprint>
- В Windows XP или 2003: HttpCfg.exe установить ssl -i 0.0.0.0:8443 -h <40CharacterThumbprint>
- Создать локального пользователя: net user "TestUserForBasicAuth" "TstPWD@*4Bsic" /add
Чтобы очистить сертификаты, привязку SSL-сертификата и учетную запись пользователя, созданную на предыдущих шагах, выполните следующие команды. Обратите внимание, что при наличии нескольких сертификатов одного и того же имени CertMgr.exe вам потребуется ввод перед их удалением.
- CertMgr.exe -del -c -n Fake-Test-CA -s -r LocalMachine Root
- CertMgr.exe -del -c -n localhost -s -r LocalMachine My
- Netsh.exe http delete sslcert ipport=0.0.0.0:8443 (или HttpCfg.exe удалить ssl -i 0.0.0.0:8443)
- Net user "TestUserForBasicAuth" /delete
Убедитесь, что существует только один корневой сертификат с именем Fake-Test-CA. Если вы не уверены, всегда безопасно попробовать очистить эти сертификаты с помощью приведенных выше команд очистки (и проигнорировать ошибки) перед началом пятиэтапной настройки.