Exemplos de camada de canal de segurança
Os exemplos a seguir ilustram a segurança na camada de canal
Segurança de transporte do Windows sobre TCP: Cliente: RequestReplyTcpClientWithWindowsTransportSecurityExemplo, Servidor: RequestReplyTcpServerWithWindowsTransportSecurityExemplo.
Proposta de segurança de transporte do Windows através de pipes nomeados: Cliente - RequestReplyNamedPipesClientWithWindowsTransportSecurityExample, Servidor - RequestReplyNamedPipesServerWithWindowsTransportSecurityExample.
Segurança de transporte SSL: Cliente: HttpClientWithSslExample, Servidor: HttpServerWithSslExample.
Nome de utilizador com segurança SSL em modo misto: Cliente: HttpClientWithUsernameOverSslExample, Servidor: HttpServerWithUsernameOverSslExample.
Nome de utilizador sobre segurança em modo misto SSL: Cliente: HttpClientWithKerberosOverSslExample, Servidor: HttpServerWithKerberosOverSslExample.
Nome de utilizador sobre segurança de modo misto SSL: MetadataImportWithUsernameOverSslExample. Token emitido com segurança de modo misto em SSL: MetadataImportWithIssuedTokenOverSslExample. Certificado X509 sobre segurança de modo misto SSL: MetadataImportWithX509OverSslExample.
Configuração do One-Time para amostras de segurança
Para executar exemplos de segurança WWSAPI, você precisa configurar os certificados de cliente e servidor para SSL, bem como uma conta de usuário local para autenticação de cabeçalho HTTP. Antes de começar, você precisa das seguintes ferramentas:
- MakeCert.exe (Disponível no SDK do Windows 7.)
- CertUtil.exe ou CertMgr.exe (CertUtil.exe está disponível nos SDKs do Windows a partir do Windows Server 2003. CertMgr.exe está disponível no SDK do Windows 7. Você só precisa de uma dessas ferramentas.)
- HttpCfg.exe: (Você só precisa disso se estiver usando o Windows 2003 ou Windows XP. Esta ferramenta está disponível nas Ferramentas de Suporte do Windows XP SP2 e também vem com o CD de Ferramentas do Windows Server 2003 Resource Kit.)
Se você obtiver os exemplos de WWSAPI instalando o SDK do Windows 7, poderá encontrar os MakeCert.exe e CertMgr.exe em %ProgramFiles%\Microsoft SDKs\Windows\v7.0\bin.
Execute a seguinte configuração de cinco etapas a partir do prompt de comando (elevado se você estiver usando o Windows Vista e superior):
- Gere um certificado autoassinado para ser a autoridade de certificação (CA) ou emissor: MakeCert.exe -ss Root -sr LocalMachine -n "CN=Fake-Test-CA" -cy autoridade -r -sk "CAKeyContainer"
- Gere um certificado de servidor usando o certificado anterior como emissor: MakeCert.exe -ss My -sr LocalMachine -n "CN=localhost" -sky Exchange -is Root -ir LocalMachine -in Falso-Test-CA -sk "ServerKeyContainer"
- Encontre a impressão digital (um hash SHA-1 de 40 caracteres) do certificado do servidor executando um dos seguintes comandos e procure o certificado chamado localhost com o emissor Fake-Test-CA:
- CertUtil.exe -store Meu localhost
- CertMgr.exe -s -r LocalMachine Meu
- Registe a impressão digital do certificado do servidor, sem espaços, no HTTP.SYS.
- No Windows Vista e superior (a opção "appid" é um GUID arbitrário): Netsh.exe http add sslcert ipport=0.0.0.0:8443 appid={00001111-aaaa-2222-bbbb-3333cccc4444} certhash=<40CharacterThumbprint>
- No Windows XP ou 2003: HttpCfg.exe configurar SSL -i 0.0.0.0:8443 -h <40CharacterThumbprint>
- Crie um utilizador local: Net user "TestUserForBasicAuth" "TstPWD@*4Bsic" /add
Para limpar os certificados, a vinculação de certificado SSL e a conta de usuário criada nas etapas anteriores, execute os seguintes comandos. Observe se houver vários certificados com o mesmo nome, CertMgr.exe precisará de sua entrada antes de excluí-los.
- CertMgr.exe -del -c -nTest-CA -s -r LocalMachine raiz falsa
- CertMgr.exe -del -c -n localhost -s -r LocalMachine Meu
- Netsh.exe http excluir sslcert ipport=0.0.0.0:8443 (ou HttpCfg.exe excluir ssl -i 0.0.0.0:8443)
- Utilizador de rede "TestUserForBasicAuth" /eliminar
Verifique se há apenas um certificado raiz chamado Fake-Test-CA. Se você não tiver certeza, é sempre seguro tentar limpar esses certificados usando os comandos de limpeza acima (e ignorar erros) antes de iniciar a configuração em cinco etapas.