이 사이트에서 보안 연결을 제공할 수 없습니다(ERR_SSL_PROTOCOL_ERROR).
web.config에 URL 리라이트 코드를 추가하여 azure에 공개했을 때.http로 웹사이트에 접속하려고 해도 자동으로 https로 리다이렉트 됩니다.
<rewrite>
<rules>
<rule name="Redirect to https">
<match url="(.*)"/>
<conditions>
<add input="{HTTPS}" pattern="Off"/>
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}"/>
</rule>
</rules>
</rewrite>
그러나 로컬 머신에서 동일한 코드를 실행하면 다음과 같은 오류가 발생합니다.
이 사이트는 보안 연결을 제공할 수 없습니다.
로컬 머신에서 위의 코드를 실행하면 위의 오류를 해결할 수 있는 방법은 무엇입니까?
제가 개인적으로 하는 일은 설정을 다시 쓰는 것입니다.release.config는 로컬에서 동작하는 것이 조금 불안정하기 때문에 정확하게 실행해 주세요.
문제는 IIS Express가 다른 포트로 HTTP와 HTTPS를 공개하기 때문에 에서 리다이렉트 할 경우http://localhost:1234로.https://localhost:1234IIS Express가 HTTPS를 공개하고 있기 때문에 동작하지 않습니다.https://localhost:44300.
IIS Express에서 SSL/TLS를 이노블로 할 수 있지만(그럴 필요가 있습니다), Release 모드에서는 Rewrite 규칙만 사용합니다.
다음은 웹의 예입니다.Release.config 파일:
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
</system.web>
<system.webServer>
<rewrite xdt:Transform="Insert">
<rules>
<!-- Redirects users to HTTPS if they try to access with HTTP -->
<rule
name="Force HTTPS"
stopProcessing="true">
<match url="(.*)"/>
<conditions>
<add input="{HTTPS}" pattern="^OFF$" ignoreCase="true"/>
</conditions>
<action
type="Redirect"
url="https://{HTTP_HOST}/{R:1}"
redirectType="Permanent"/>
</rule>
</rules>
<outboundRules>
<!-- Enforces HTTPS for browsers with HSTS -->
<!-- As per official spec only sent when users access with HTTPS -->
<rule
xdt:Transform="Insert"
name="Add Strict-Transport-Security when HTTPS"
enabled="true">
<match serverVariable="RESPONSE_Strict_Transport_Security"
pattern=".*" />
<conditions>
<add input="{HTTPS}" pattern="on" ignoreCase="true" />
</conditions>
<action type="Rewrite" value="max-age=31536000" />
</rule>
</outboundRules>
</rewrite>
</system.webServer>
</configuration>
여기에도 HSTS를 추가합니다.를 삽입합니다.<rewrite>요소를 Web.config로 변환합니다.그<system.webServer>요소가 이미 Web.config에 존재합니다.그렇지 않으면 이 요소를 삽입합니다.
이것은 항상 나에게 문제를 해결해 준다.
- 솔루션 탐색기에서 프로젝트를 누르십시오.
- F4 키(속성 보기)를 누릅니다.
- URL(SSL URL이 아님)을 복사합니다.
- 웹 탭의 프로젝트 URL에 URL을 붙여넣고 저장합니다.
- 솔루션 탐색기에서 프로젝트를 누르십시오.
- F4 키(속성 보기)를 누릅니다.
- SSL Enabled를 false로 변경합니다.
- 다시 true로 변경합니다.새 SSL URL이 있어야 합니다. 복사하십시오.
- 웹 탭의 프로젝트 URL에 새 SSL URL을 붙여넣습니다.Create Virtual Directory를 클릭합니다.
- 응용 프로그램 루트 URL 재정의를 클릭하고 SSL URL에 붙여넣습니다. 저장.
HTTPS에서 사용하도록 Visual Studio Server를 구성해야 합니다. 자세한 내용은 다음 링크를 참조하십시오.
Visual Studio의 내장 ASP를 갖춘 HTTPS.NET 개발 서버
이전 버전의 크롬 웹 브라우저에서 이 문제를 해결했습니다.
다운로드 및 설치할 수 있는 이전 크롬 버전 목록입니다.
60.0.3112.90 - Ubuntu는 나에게 딱 맞는 버전입니다.
새로운 버전보다 조금 느릴 수도 있지만, 실제 가동에는 매우 적합합니다(:
저는 사이트를 http에서https로 리다이렉트 하는 Javascript 코드가 있다는 것을 알게 되었습니다.따라서 이 문제에 관련된 다른 코드가 있는 경우 해당 환경을 탐색해 보십시오.이게 도움이 되길 바라.감사해요.
프로젝트 속성의 웹 탭에서 443으로 시작하는 PORT(예: 44301)를 사용하도록 URL을 변경했습니다.또한 http를 https로 변경해 주세요.저는 좋아요.
언급URL : https://stackoverflow.com/questions/43338665/this-site-can-t-provide-a-secure-connection-err-ssl-protocol-error
'programing' 카테고리의 다른 글
| Azure Cosmos DB가 멀티 모델이라는 것은 어떤 의미입니까? (0) | 2023.04.20 |
|---|---|
| bash 스크립트의 에코 탭 문자 (0) | 2023.04.20 |
| ROW_NUMBER 주문자 없음 (0) | 2023.04.20 |
| 다운로드한 .box 파일을 Vagrant에 추가하는 방법 (0) | 2023.04.20 |
| Visual Studio에서 Excel VBA 코드를 작성할 수 있습니까? (0) | 2023.04.20 |
