安全通道层示例

以下示例演示通道层的安全性

通过 TCP 的 Windows 传输安全性:客户端: RequestReplyTcpClientWithWindowsTransportSecurityExample,服务器: RequestReplyTcpServerWithWindowsTransportSecurityExample

通过命名管道的 Windows 传输安全性:客户端: RequestReplyNamedPipesClientWithWindowsTransportSecurityExample,服务器: RequestReplyNamedPipesServerWithWindowsTransportSecurityExample

SSL 传输安全性:客户端: HttpClientWithSslExample,服务器: HttpServerWithSslExample

基于 SSL 的用户名混合模式安全性:客户端: HttpClientWithUsernameOverSslExample,服务器: HttpServerWithUsernameOverSslExample

基于 SSL 混合模式的用户名安全性:客户端: HttpClientWithKerberosOverSslExample,服务器: HttpServerWithKerberosOverSslExample

基于 SSL 混合模式安全性的用户名: MetadataImportWithUsernameOverSslExample。 通过 SSL 混合模式安全性颁发的令牌: MetadataImportWithIssuedTokenOverSslExample。 基于 SSL 混合模式安全性的 X509 证书: MetadataImportWithX509OverSslExample

安全示例的One-Time设置

若要运行 WWSAPI 安全示例,需要设置 SSL 的客户端和服务器证书,以及用于 HTTP 标头身份验证的本地用户帐户。 在开始之前,需要以下工具:

  • Windows 7 SDK.) 中提供的MakeCert.exe (
  • CertUtil.exe或CertMgr.exe (CertUtil.exe 在从 Windows Server 2003 开始的 Windows SDK 中可用。windows 7 SDK 中提供了CertMgr.exe。只需要其中一个工具。)
  • HttpCfg.exe: (仅当使用 Windows 2003 或 Windows XP 时,才需要此项。此工具在 Windows XP SP2 支持工具中提供,并且还附带 Windows Server 2003 资源工具包工具 CD.)

如果通过安装 Windows 7 SDK 获取 WWSAPI 示例,可以在 %ProgramFiles%\Microsoft SDKs\Windows\v7.0\bin 下找到MakeCert.exe和CertMgr.exe。

如果使用 Windows Vista 及更高版本) ,请从命令提示符 (提升执行以下五步设置:

  1. 生成自签名证书作为证书颁发机构 (CA) 或颁发者: MakeCert.exe -ss Root -sr LocalMachine -n “CN=Fake-Test-CA” -cy authority -r -sk “CAKeyContainer”
  2. 使用以前的证书作为颁发者生成服务器证书: MakeCert.exe -ss My -sr LocalMachine -n “CN=localhost” -sky exchange -is Root -ir LocalMachine -in Fake-Test-CA -sk “ServerKeyContainer”
  3. 通过运行以下命令 (服务器证书的 40 个字符的 SHA-1 哈希) 查找指纹,并使用颁发者 Fake-Test-CA 搜索名为 localhost 的证书:
    • CertUtil.exe -store My localhost
    • CertMgr.exe -s -r LocalMachine My
  4. 注册服务器证书指纹,其中没有空格,HTTP.SYS:
    • 在 Windows Vista 及更高版本 (“appid”选项是任意 GUID) : Netsh.exe http add sslcert ipport=0.0.0.0:8443 appid={00112233-4455-6677-8899-AABBCCDDEEFF} certhash=<40CharacterThumbprint>
    • 在 Windows XP 或 2003 上: HttpCfg.exe设置 ssl -i 0.0.0.0:8443 -h <40CharacterThumbprint>
  5. 创建本地用户: Net 用户 “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 用户 “TestUserForBasicAuth” /delete

确保只有一个名为 Fake-Test-CA 的根证书。 如果不确定,在开始五步设置之前,始终可以安全地尝试使用上述清理命令清理这些证书 (并忽略) 错误。