Partilhar via


Configurando HTTP e HTTPS

Os serviços e clientes WCF podem se comunicar por HTTP e HTTPS. As configurações HTTP/HTTPS são definidas usando o IIS (Serviços de Informações da Internet) ou usando uma ferramenta de linha de comando. Quando um serviço WCF é hospedado no IIS, as configurações HTTP ou HTTPS podem ser configuradas no IIS (usando a ferramenta inetmgr.exe). Se um serviço WCF for auto-hospedado, as configurações HTTP ou HTTPS serão definidas usando uma ferramenta de linha de comando.

No mínimo, você deseja configurar um registro de URL e adicionar uma exceção de Firewall para a URL que seu serviço usará. Você pode definir essas configurações com a ferramenta Netsh.exe.

Configurando reservas de namespace

A reserva de namespace atribui os direitos de uma parte do namespace de URL HTTP a um grupo específico de usuários. Uma reserva dá a esses usuários o direito de criar serviços que escutam nessa parte do namespace. Reservas são prefixos de URL, o que significa que a reserva abrange todos os subcaminhos do caminho de reserva. As reservas de namespace permitem duas maneiras de usar curingas. A documentação da API do Servidor HTTP descreve a ordem de resolução entre declarações de namespace que envolvem curingas.

Um aplicativo em execução pode criar uma solicitação semelhante para adicionar registros de namespace. Inscrições e reservas competem por partes do namespace. Uma reserva pode ter precedência sobre um registro de acordo com a ordem de resolução dada na ordem de resolução entre reivindicações de namespace que envolvem curingas. Nesse caso, a reserva bloqueia o aplicativo em execução de receber solicitações.

O exemplo a seguir usa a ferramenta Netsh.exe:

netsh http add urlacl url=http://+:80/MyUri user=DOMAIN\user

Este comando adiciona uma reserva de URL para o namespace de URL especificado para a conta DOMAIN\user. Para obter mais informações sobre como usar o comando netsh, digite netsh http add urlacl /? um prompt de comando e pressione Enter.

Configurando uma exceção de firewall

Ao hospedar automaticamente um serviço WCF que se comunica por HTTP, uma exceção deve ser adicionada à configuração do firewall para permitir conexões de entrada usando uma URL específica.

Configurando certificados SSL

O protocolo SSL (Secure Sockets Layer) usa certificados no cliente e no servidor para armazenar chaves de criptografia. O servidor fornece seu certificado SSL quando uma conexão é feita para que o cliente possa verificar a identidade do servidor. O servidor também pode solicitar um certificado do cliente para fornecer autenticação mútua de ambos os lados da conexão.

Os certificados são armazenados em um armazenamento centralizado de acordo com o endereço IP e o número da porta da conexão. O endereço IP especial 0.0.0.0 corresponde a qualquer endereço IP da máquina local. Observe que o armazenamento de certificados não distingue URLs com base no caminho. Serviços com o mesmo endereço IP e a mesma combinação de portas devem compartilhar certificados mesmo que o caminho na URL dos serviços seja diferente.

Para obter instruções passo a passo, consulte Como configurar uma porta com um certificado SSL.

Configurando a lista de escuta IP

A API do Servidor HTTP só se liga a um endereço IP e a uma porta quando um usuário registra uma URL. Por padrão, a API do Servidor HTTP se liga à porta na URL de todos os endereços IP da máquina. Um conflito surge se um aplicativo que não usa a API do Servidor HTTP tiver sido previamente vinculado a essa combinação de endereço IP e porta. A Lista de Escuta IP permite que os serviços WCF coexistam com aplicativos que usam uma porta para alguns dos endereços IP da máquina. Se a Lista de Escuta IP contiver entradas, a API do Servidor HTTP liga-se apenas aos endereços IP especificados pela lista. Modificar a Lista de Escuta de IP requer privilégios administrativos.

Use a ferramenta netsh para modificar a lista de escuta IP, conforme mostrado no exemplo a seguir:

netsh http add iplisten ipaddress=0.0.0.0:8000

Outras definições de configuração

Ao usar WSDualHttpBindingo , a conexão do cliente usa padrões compatíveis com reservas de namespace e o firewall do Windows. Se você optar por personalizar o endereço base do cliente de uma conexão dupla, também deverá definir essas configurações HTTP no cliente para corresponder ao novo endereço.

A API do Servidor HTTP tem algumas definições de configuração avançadas que não estão disponíveis através do HttpCfg. Essas configurações são mantidas no Registro e se aplicam a todos os aplicativos em execução nos sistemas que usam as APIs do Servidor HTTP. Para obter informações sobre essas configurações, consulte Http.sys configurações do Registro para o IIS. A maioria dos usuários não precisa alterar essas configurações.

Consulte também