Estou usando o novo Visual Studio 2013 com IISExpress pela primeira vez (servidor de desenvolvimento ASP.net usado anteriormente no VS2010). Estou com problemas ao tentar depurar meu projeto.
É o que vejo no Chrome:
Não foi possível estabelecer uma conexão segura com o servidor. Isso pode ser um problema com o servidor ou pode estar exigindo um certificado de autenticação de cliente que você não possui. Código de erro: ERR_SSL_PROTOCOL_ERROR
Atualizei meu arquivo da web Properies -> para que o URL do projeto use um URL https agora. No entanto, depois de fazer isso, agora recebo um novo erro ao iniciar:
A conexão com o host local foi interrompida. Código de erro: ERR_CONNECTION_RESET
obrigado
Respostas:
Se você estiver usando URLRewrite para forçar conexões SSL no seu web.config, provavelmente está reescrevendo o endereço do host local para forçar https. Se a depuração com SSL ativado não for importante para você e você estiver usando o URLRewrite, considere adicionar
<add input="{HTTP_HOST}" pattern="localhost" negate="true" />
à seção de reescrita do arquivo web.config. Ele interromperá a reescrita de qualquer endereço de host local, mas a deixará em um ambiente de produção. Se você não estiver usando URLRewrite ou precisar depurar usando SSL, http://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspx pode ajudar. É para o VS2010, mas também deve ser suficiente para o VS2013.fonte
Eu estava recebendo ERR_CONNECTION_RESET porque meu número de porta do aplicativo configurado do Visual Studio 2013 / IIS Express NÃO estava no intervalo : 44300-: 44398 . (Não me lembro de ter que dispensar nenhum aviso para sair desse intervalo.) Alterar o número da porta para algo nesse intervalo é tudo o que eu precisava fazer para fazê-lo funcionar.
Percebi isso depois de revisar a
netsh http show sslcert > sslcert.txt
saída e clicar em algo que li recentemente sobre os números de porta.fonte
netsh http add sslcert ...
para adicionar a porta que deseja usar. Útil em alguns casos.netsh
para o resgate, este é digno de um post ...Certifique-se de remover os certificados 'localhost' anteriores, pois eles podem entrar em conflito com o certificado gerado pelo IIS Express. Eu tive esse mesmo erro (ERR_SSL_PROTOCOL_ERROR) e demorei muitas horas para finalmente descobrir depois de experimentar muitas "soluções". Meu erro foi que eu criei meu próprio certificado 'localhost' e havia dois deles. Eu tive que excluir os dois e o IIS Express recriá-lo.
Aqui está como você pode verificar e remover o certificado 'localhost':
No Visual Studio, selecione projeto e, na guia Propriedade, ative SSL = true. Salvar, criar e executar. O IIS Express gerará um novo certificado 'localhost'.
Nota: Se não funcionar, tente o seguinte: desabilite o IIS Express no projeto VS e interrompa todo o aplicativo em execução antes de remover o certificado 'localhost'. Além disso, você pode ir para 'painel de controle> programas' e Reparar o IIS Express.
fonte
netsh http delete sslcert ipport=0.0.0.0:443
netsh http add sslcert ipport=0.0.0.0:443 appid="{GUID-APP-ID}" certhash="THUMBPRINTOFMYCERTIFICATEINHEXADECIMAL"
Estou resumindo as etapas que me ajudaram a resolver esse problema:
O New_Certificate_Hash será o seu certificado padrão associado ao seu host local (que encontramos na etapa 4) ou aquele que você deseja adicionar como um novo certificado.
PS Obrigado pela sua resposta uosɐſ (que me ajudou a resolver este problema)
fonte
O problema que eu estava enfrentando tinha a ver comigo, em algum momento, habilitando o HSTS para localhost e não percebendo que isso iria interromper meu http: // localhost: someport no IIS Express.
O HSTS informa ao navegador (Chrome no meu caso) que SEMPRE solicite um URL usando HTTPS. Portanto, mesmo que eu nem tivesse ativado o SSL para o meu aplicativo MVC 5, o navegador ainda tentaria acessar meu site usando HTTPS na URL em vez de HTTP.
O conserto?
fonte
Nenhuma das opções acima funcionou para mim. Eu tive que fazer o seguinte:
Eu tenho as etapas a partir desta discussão.
Espero que isto ajude.
fonte
No meu caso, criei um certificado autoassinado e o fiz funcionar, exceto que estava recebendo um erro no navegador porque o certificado não era confiável. Portanto, mudei o certificado para a pasta Autoridades de certificação raiz confiáveis> Certificados no snap-in Certificados. Funcionou e fechei o Visual Studio durante o dia.
No dia seguinte, iniciei meu projeto e recebi o erro mencionado na pergunta original. O problema é que o certificado com o qual você configurou o IISExpress deve existir na pasta Pessoal> Certificados ou o HTTPS deixará de funcionar. Depois que o IIS Express iniciar com êxito, você poderá arrastar o certificado de volta para o local confiável. Ele continuará funcionando até que você reinicie o IIS Express.
Não querendo se preocupar em arrastar o certificado para frente e para trás toda vez, apenas coloco uma cópia do certificado nos dois lugares e agora tudo funciona bem.
fonte
Eu tenho o mesmo problema no Visual Studio 2015. Porque eu uso a ligação SSL no web.config
E eu posso resolver o problema com a resposta do Sr..djroedger. Substituindo
com
<add input="{HTTP_HOST}" pattern="localhost" negate="true" />
no meu web.config, então meu código é
fonte
Eu estava tendo esse problema, configurei meu site para exigir global https em FilterConfig.cs.
Esqueci de alterar o URL do projeto para https: deste tutorial http://azure.microsoft.com/en-us/documentation/articles/web-sites-dotnet-deploy-aspnet-mvc-app-membership-oauth- sql-database / sob ENABLE SSL parte 4. Isso causou os erros que você estava recebendo.
fonte
O problema que tive estava relacionado à resposta de Jason Kleban, mas tive um pequeno problema com minhas configurações nas Propriedades do Visual Studio para o IIS Express.
Depois de alterar a porta para estar no intervalo: 44300 a 44399, o endereço também começa com
HTTPS
fonte
Outro problema que me aconteceu duas vezes:
no IIS Express,
applicationhost.config
a ordem das ligações importa. Uma ligação pode ter precedência sobre a ligação SSL, fazendo com que ela não funcione.Exemplo:
Você pode ter adicionado uma ligação semelhante à segunda para poder acessar seu WebService de fora
localhost
. Como essa ligação escuta qualquer endereço, parece substituir a ligação SSL, embora uma porta diferente tenha sido usada.Remova a ligação maligna ou mova-a para baixo.
fonte
Remover os diretórios IISExpress e vs e usar o intervalo de portas ssl de 44300 a 44399 (inclusive) deste artigo funcionou para mim
fonte
Isso é anedótico, como foi ouvido por um colega de trabalho, mas supostamente é um problema com o Chrome forçando https. Eu costumo iniciar no firefox, então eu nunca tinha visto esse problema antes. Usando o Firefox ou ou seja, trabalhou para o meu colega de trabalho.
fonte
Meu problema foi causado pelo Fiddler. Quando o Fiddler falha, ele ocasionalmente mexe com suas configurações de proxy. Simplesmente iniciar o Fiddler parecia consertar tudo (talvez ele se conserte de alguma forma).
fonte
O ' verificador de instalação de certificado Digicert ' é frequentemente útil em situações como esta.
Consegui verificar se o certificado SSL que estava sendo tentado era o que eu esperava, comparando o número de série.
Para mim, a resposta de Jason Kleban foi o problema real, mas esse pode ser um utilitário muito útil para verificar suas asserções básicas sobre o certificado que está sendo carregado.
fonte
Se você precisar usar uma porta fora do intervalo 44300-44399, aqui está uma solução alternativa:
Isso registra o certificado de desenvolvimento do IIS Express com essa porta e é a maneira mais fácil de solucionar o requisito de intervalo 44300-44399.
fonte
Acabei de reconstruir meu computador. Esse tópico me deu as pistas, onde percebi nas configurações do projeto> Web, o projeto foi configurado para usar HTTP e a porta HTTP. Ao atualizá-lo para HTTPS e a porta HTTPS correta, tudo começou a funcionar novamente.
fonte
Para seguir para outras respostas sobre a configuração da porta SSL entre 44300 e 44399, não foi possível alterar a propriedade Enabled do SSL no Visual Studio, nem definir uma URL SSL específica. Outras respostas, como reparar o IIS Express, não ajudaram. A solução foi ir para a pasta .vs paralela ao arquivo sln, abrir a subpasta de configuração e editar o arquivo applicationhost.config. Em seguida, adicionei a linha https manualmente e reiniciei o VS.
fonte
No meu caso, simplesmente esqueci que tinha uma ligação configurada para (no meu caso) https: // localhost: 44300 no IIS completo. Você não pode ter os dois!
fonte
No meu caso, o URL do host local foi redirecionado para https: // localhost quando eu estava depurando. Isso aconteceu de um momento para outro, sem mudar nada. Eu resolvi isso fazendo uma recarga difícil no navegador. Aqui o link
fonte