IIS Express — SSL 작동하기
IIS Express에서 개발중인 VS2010 MVC3 프로젝트에 대한 보안 연결을 허용 할 수 없습니다. 포트 80에서는 안전하지 않은 연결을 허용하지만 포트 443에서는 안전하지 않습니다.
인터넷 검색을 기반으로 다음 단계를 수행했습니다.
1) VS2010 명령 줄에서 다음을 실행하여 IIS Express Server 자체 서명 인증서의 SHA1 지문을 찾았습니다.
certmgr.exe /c /s /r localMachine MY
결과는 9B088F80 A4FC3141 28F62890 70BA1FC4 49FDD009입니다. 나중에 지문을 사용할 때 공백을 삭제해야한다는 것을 알게되었습니다.
2) 관리자 권한 명령 줄 프롬프트에서 다음을 실행하여 포트 443에 연결된 인증서를 삭제했습니다.
netsh http delete sslcert ipport=0.0.0.0:443
3) VS2010 도구 메뉴에서 GUID 만들기를 실행하여 새 GUID를 생성했습니다. 제 경우에는 B0421A5B-FF61-47CE-892D-11AA3A9C7D2A를 받았습니다.
4) 관리자 권한 명령 줄 프롬프트에서 다음을 실행하여 자체 서명 된 인증서를 포트 443에 설치했습니다.
netsh http add sslcert ipport=0.0.0.0:443 certhash=9B088F80A4FC314128F6289070BA1FC449FDD009 appid={B0421A5B-FF61-47CE-892D-11AA3A9C7D2A}
5) 관리자 권한 명령 줄 프롬프트에서 다음을 실행하여 ACL을 수정했습니다.
netsh http add urlacl url=https://localhost:443/ user=everyone
6) 포트 443 및 https 프로토콜에 대한 바인딩을 추가하여 IIS Express 용 application.config 파일을 수정했습니다. 파일의 사이트 섹션은 다음과 같이 표시되었습니다.
<sites>
<site name="Development Web Site" id="1" serverAutoStart="true">
<application path="/">
<virtualDirectory path="/" physicalPath="%IIS_BIN%\AppServer\empty_wwwroot" />
</application>
<bindings>
<binding protocol="https" bindingInformation="*:443:localhost" />
<binding protocol="http" bindingInformation="*:80:localhost" />
</bindings>
</site>
<siteDefaults>
<logFile logFormat="W3C" directory="%IIS_USER_HOME%\Logs" />
<traceFailedRequestsLogging directory="%IIS_USER_HOME%\TraceLogFiles" enabled="true" maxLogFileSizeKB="1024" />
</siteDefaults>
<applicationDefaults applicationPool="IISExpressAppPool" />
<virtualDirectoryDefaults allowSubDirConfig="true" />
</sites>
7) 관리자 권한 명령 줄 프롬프트에서 다음을 실행하여 http 서비스를 다시 시작했습니다.
net stop http
net start http
8) 내 MVC 프로젝트 속성 페이지의 웹 탭에서 프로젝트 URL을 다음과 같이 변경했습니다.
http://localhost/
이 변경을 수행 한 후 프로젝트 속성 페이지를 저장하면 서버 재구성이 트리거되었습니다.
VS2010 내에서 MVC 앱을 시작하면 http : // localhost (기본값 인 포트 80)에 올바르게 다시 연결됩니다 . IIS Express가 포트 80에서 안전하지 않은 / 일반적인 연결로 작동하도록하는 모든 단계를 포함하지 않았습니다. 그러나 기본적으로 5-7 단계이지만 https 및 포트 443이 아닌 http 및 포트 80에 중점을 둡니다.
그러나 https가 필요한 작업으로 전환하려고하면 "서버 연결 거부"오류가 발생합니다.
내가 도대체 뭘 잘못하고있는 겁니까?
당신은 IISExpress 눌러를 사용하는 프로젝트를 설정 한 후 F4
프로젝트가 속성을 가져 오는 솔루션 탐색기와 속성 세트를 선택한 상태에서 SSL Enable
설정 true
하고 아래에 SSL URL
당신이 원하는 (귀하의 경우 443) 포트와 URL을 설정 SSL.
이것은 후드 아래로 가지 않고 나를 위해 작동하며 자체 서명 된 인증서는 자동입니다.
기본적으로 해당 URL에서 프로젝트를 실행하려면 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성을 선택한 다음 웹을 선택하고 프로젝트 URL을 https : // localhost : 443으로 바꿉니다.
jbtule의 단계를 따랐지만 SSL이 여전히 작동하지 않는 경우 포트 형식이 :443XX
.
Visual Studio는 SSL을 사용하도록 설정 한 첫 번째 프로젝트에 대해이 작업을 자동으로 수행했지만 후속 프로젝트에는 임의의 SSL 포트가있는 것 같습니다. Project > Web
UI 아래에서 위의 443 구조로 변경하면 나를 위해 일하고 있습니다.
나는 대답을 우연히 발견했습니다.
In step 6, I was modifying the wrong IIS Express application.config file. It turns out there is a "master" config file in the application's home directory (e.g., C:\Program Files (x86)\IIS Express\AppServer
, on my system), which is the one I modified.
The second and correct file to modify is the one in the User data area (e.g., C:\Users\Mark.ARCABAMA\Documents\IISExpress\config
, on my system).
I would just like to add the solution that helped me with the same issue.
VS showed an SSL URL that was https://[an IP, not localhost]:44367
The url was reserved, which I found with netsh http show urlacl
I then ran netsh http delete urlacl https://[an IP, not localhost]:44367
, rebooted VS, turned SSL off by setting SSL to false, and then on again. This corrected the SSL URL.
I recently had a very similar problem with VS 2019 and IIS Epress. I tried to change the http to https so that I could use ADFS. (Msg : This site is unreachable localhost does not allow connection).
After a little more research, I tried to switch the 'Require SSL' property from true to false and back to true. This triggered an update to the applicationhost.config file (... . Vs \ ProjectName \ config \ applicationhost.config) that created a new SSL binding with a new port number for the https protocol. So, I modified all the links with the proposed new port (in the web property of the project, the config file and the ADFS config) and it works. Conclusion, it is not necessary that the http port is the same as https same for the same site.
참고URL : https://stackoverflow.com/questions/5521305/iis-express-getting-ssl-to-work
'IT Share you' 카테고리의 다른 글
HTML 책과 같은 페이지 매김 (0) | 2020.12.08 |
---|---|
Java 응용 프로그램에서 사용자 설정을 저장하는 가장 좋은 방법은 무엇입니까? (0) | 2020.12.08 |
'git remote add upstream'은 무엇을 도와 줍니까? (0) | 2020.12.08 |
Python "개인"함수 코딩 규칙 (0) | 2020.12.08 |
Backbone.js 뷰에서 $ el과 el의 차이점은 무엇입니까? (0) | 2020.12.08 |