http를 https로 리디렉션하는 것이 좋지 않습니까?


247

방금 서버에 SSL 인증서를 설치했습니다.

그런 다음 포트 80에서 도메인의 모든 트래픽에 대한 리디렉션을 설정하여 포트 443으로 리디렉션합니다.

즉, 모든 http://example.com트래픽이 이제 해당 https://example.com버전의 페이지로 리디렉션됩니다 .

리디렉션은 다음과 같이 Apache Virtual Hosts 파일에서 수행됩니다.

RewriteEngine on
ReWriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L] 

내 질문은 SSL을 사용하는 데 단점이 있습니까?

이것은 301 리디렉션이 아니므로 https? 로 전환하면 검색 엔진에서 링크 주스 / 순위가 사라집니다 .

도움을 주셔서 감사합니다. 나는 항상 서버에서 SSL을 설정하고 싶었고, 오늘 밤에 그것을하기로 결정했습니다. 지금까지는 잘 작동하는 것 같지만 모든 페이지에서 이것을 사용하는 것이 좋은지 확실하지 않습니다. 내 사이트는 전자 상거래가 아니며 민감한 데이터를 처리하지 않습니다. 그것은 주로 외모와 학습을 위해 그것을 설치하는 스릴을위한 것입니다.


업데이트 된 문제

Strangely Bing은 이제 모든 곳에서 HTTPS를 사용하고 있으므로 내 사이트에서이 스크린 샷을 만듭니다 ...

여기에 이미지 설명을 입력하십시오


12
[WTF-답변을 추가 할 수 없습니다 (응답 담당자가 충분한 것 같음). 내 대답은 (일부) 때때로 IT나쁘다는 것 입니다. HTTP를 통해 GET에 COOKIE 또는 API 키를 전달하십시오. 사이트에서 HTTP 요청을 HTTPS 요청으로 리디렉션하면 이러한 호출은 작동하지만 COOKIE 또는 API 키는 일반 노출로 전송됩니다. 일부 API는 더 강력한 접근 방식 인 HTTP를 해제합니다. HTTP가 전혀 없으므로 HTTPS를 사용하지 않으면 작동하지 않을 수 있습니다. 예 : "모든 API 요청은 HTTPS를 통해 이루어져야합니다. 일반 HTTP를 통한 호출은 실패합니다"from stripe.com/docs/api?lang=php#authentication
codingoutloud

8
@codingoutloud-대안은 모든 것이 HTTPS없이 HTTP를 통해 발생 한다는 입니다. 어떻게 더 나은가요?
Mark Henderson

3
@BenCrowell, 그것은 포로 포털sslstrip스타일 재전송 공격 과 끔찍한 것처럼 보이기 때문에 (둘 다 중간자 요청 가로 채기) HSTS 인식 브라우저는 둘 다 차단합니다.
Jeffrey Hantin

3
예를 들어 부하 JQuery와 사용 - HTTPS를 사용하여 당신은 또한 HTTPS를해야한다 등 모든 것을 의미하거나로드 할 수 있음을 인식 src="://example.com/jquery.js"-의 부족주의 httphttps때문에 브라우저가 적절한 하나를로드합니다. API (https를 통해로드 됨)가 http 링크를 생성함에 따라 일부 내장 Amazon 항목을 올바르게로드하려고하는 악몽이있었습니다. 즉, https 링크를 전환하는 문서화되지 않은 매개 변수를 찾을 때까지 제대로 작동하지 않습니다.
기본

3
제이슨; 업데이트는 웹 마스터 에게 새로운 질문이되어야합니다. 웹 마스터 는 원래 질문과 (기술적으로) 관련이 없기 때문입니다. 그러나 스타일 시트가 안전하지 않은 도메인에서 온 것일 수 있습니다.
Mark Henderson

답변:


316

[R]자체에 플래그가입니다 302리디렉션 ( Moved Temporarily). 사람들이 사이트의 HTTPS 버전을 사용하도록하려면 (힌트 : 사용) [R=301]영구적 인 리디렉션 을 사용해야합니다 .

RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R=301,L] 

A는 301당신이 구글-FU와 힘들게 번 pageranks 모두 유지 그대로 . mod_rewrite활성화되어 있는지 확인하십시오 .

a2enmod rewrite

정확한 질문에 대답하려면 :

http를 https로 리디렉션하는 것이 좋지 않습니까?

지옥 아니 아주 좋습니다.


3
정보에 감사드립니다. 상사는 사이트의 특정 페이지에서만 https를 실행하는 이유를 알려줍니다. 모든 페이지에서 더 많은 서버 리소스를 사용하기 때문입니다. 그것에 대해 아는 것이 있습니까 아니면 사실인지 아십니까?
JasonDavis

9
@jasondavis 최적화하는 데 몇 분을 소비하지 않는 경우에만 .
Michael Hampton

10
"모든 페이지에서 더 많은 서버 리소스를 사용하여 실행합니다." 최신 CPU에는 SSL을 거의 무료로 만드는 암호화 가속 기능이 있습니다. 오버 헤드에 대해 걱정하지 마십시오.
Adam Davis

41
@AdamDavis 암호화 알고리즘은 가벼울 수 있지만 핸드 셰이크 오버 헤드는 여전히 존재합니다. 또한 HTTPS는 HTTP 프록시가 콘텐츠를 캐싱하지 못하게합니다. 에서는 대부분의 경우, HTTPS의 오버 헤드를 최소화하고 가치가 있지만, 과도한 일반화에주의한다.
200_success

6
공유 캐싱을 제거하여 일부 사이트의 사용 패턴에 유용하며 종종 보호하지 않습니다. 사람들이 사이트를 방문한 것을 알 수 있지만 수행 한 세부 사항은 알 수없는 것이 중요합니까? 이것이 SSL이 유용한 유일한 상황입니다. 모든 리소스에서 SSL의 주요 장점은 "회사 정보"를보고있는 사람들과 같이 "보안"할 필요는 없지만, 필요한 경우에는 사용할 수없고 사용하지 못하는 것입니다.
Jon Hanna

49

SSL 전용 사이트라는 아이디어를 지원하지만 사이트 디자인에 따라 한 가지 단점이 오버 헤드라고 말합니다. 예를 들어 img 태그로 많은 개별 이미지를 제공하는 경우 사이트가 훨씬 느려질 수 있습니다. SSL 전용 서버를 사용하는 모든 사람에게 다음 작업을 수행하도록 권장합니다.

  1. 내부 링크가 있는지 전체 사이트를 확인하고 링크에 고유 한 도메인 이름을 지정한 경우 모두 HTTPS를 사용하고 있는지 확인하십시오. 따라서 고유 한 리디렉션이 발생하지 않습니다.
  2. <meta property="og:url"https 버전의 도메인을 사용하도록 업데이트하십시오 .
  3. 당신이 사용하는 경우 <base href=다시 HTTPS를 사용하도록 업데이트합니다.
  4. 가능하면 SPDY 프로토콜 설치
  5. 요청 수를 줄이기 위해 가능하면 CSS 이미지 스프라이트를 사용하십시오.
  6. https가 표시되도록 사이트 맵을 업데이트하여 시간이 지남에 따라 스파이더가이 변경 사항을 학습하십시오.
  7. HTTPS를 선호하도록 Google 웹 마스터 도구와 같은 검색 엔진 환경 설정 변경
  8. 가능한 경우, 모든 stactic 미디어를 HTTPS CDN 서버로 오프로드하십시오.

위의 사항을 해결하면 많은 문제가 발생할 것입니다.


SPDY는 좋은 제안입니다. SPDY 지원을 Apache 2.x에 추가 하는 모듈도 있습니다 .
Calrion

18
" yourserver.com/some-uri "대신 "//yourserver.com/some-uri"를 사용 하면 브라우저에서 페이지가로드 된 스키마에 따라 적절한 스키마 (http 또는 https)를 선택하기 때문에 문제가 해결됩니다 (1). .
MauganRa

1
@MauganRa 물론, 예를 들어 http 기사 페이지에서 https 로그인 페이지로의 링크가 아닌 한.
Mołot

4
Google은 Referer헤더 를 통해 누군가가 방문하는 URL을 확인합니다 . 예를 들어이 사이트는 Google CDN의 jQuery를 사용하며 브라우저는 사이트를 다시로드 할 때마다 Google에 요청을 보냅니다. 이로 인해이 Referer사이트의 URL로 설정된 헤더도 Google로 전송됩니다. 따라서 Google은 IP 주소가 변경되지 않는 동안 방문한 사이트를 추적 할 수 있습니다 (이 기간 동안 Google 서비스를 사용하는 경우 Google은이 정보를 Google 계정과 연결할 수도 있습니다).
Stephan Kulla

1
1) 방금 검색하고 MySQL 데이터베이스 http를 https로
바꿨

38

https를 설정하면 사이트의 모든 곳에서 사용해야합니다. 혼합 컨텐츠 문제의 위험을 피하고 필요한 도구가 준비되어 있으면 전체 사이트를 안전하게 보호해야하는 이유는 무엇입니까?

http에서 https 로의 리디렉션과 관련하여 대답은 간단하지 않습니다.

리디렉션은 사용자가 훨씬 쉽게 사용할 수 있도록 할뿐입니다. 단지 whateversite.com을 입력하면 https로 리디렉션됩니다.

그러나. 사용자가 때때로 안전하지 않은 네트워크에 있거나 Troy Hunt와 Pineapple에 가까운 경우 어떻게해야 합니까? 그런 다음 사용자는 http://whateversite.com 을 오래된 습관으로 요청 합니다. http입니다. 타협 될 수 있습니다. 리디렉션은 https://whateversite.com.some.infrastructure.long.strange.url.hacker.org를 가리킬 수 있습니다 . 일반 사용자에게는 꽤 합법적입니다. 그러나 트래픽을 가로 챌 수 있습니다.

따라서 여기에는 두 가지 경쟁 요구 사항이 있습니다. 사용자 친화적이고 안전해야합니다. 다행히도 HSTS 헤더 라는 해결책이 있습니다. 그것으로 당신은 리디렉션을 활성화 할 수 있습니다. 브라우저는 보안 사이트로 이동하지만 HSTS 헤더 덕분에이를 기억하십시오. 사용자가 해당 비보안 네트워크에 앉아 whateversite.com을 입력하면 브라우저는 http를 통한 리디렉션을 거치지 않고 즉시 https로 이동합니다. 매우 민감한 데이터를 다루지 않는 한 대부분의 사이트에서 보안과 유용성간에 공정한 균형을 유지한다고 생각합니다. (최근에 의료 기록을 처리하는 응용 프로그램을 설정할 때 리디렉션없이 모두 https로갔습니다). 불행히도 Internet Explorer는 HSTS를 지원하지 않습니다 ( 소스), 타겟 고객이 주로 IE를 사용하고 있고 데이터가 민감한 경우 리디렉션을 사용 중지 할 수 있습니다.

따라서 IE 사용자를 타겟팅하지 않는 경우 리디렉션을 사용하고 HSTS 헤더도 활성화하십시오.


더 많은 사람들이 이것에주의를 기울여야합니다. 또 다른 것은 사람들이 끝 점이 HTTPS이기 때문에 사람들이 안전하다고 가정한다는 것입니다. GET 또는 POST에서 페이지로 전송되는 모든 정보가 일반 텍스트로되어 있다는 사실을 무시합니다.
Velox

3
@Velox- "끝 점이 HTTPS이기 때문에 사람들이 안전하다고 가정하고 GET 또는 POST의 페이지로 전송되는 모든 정보가 일반 텍스트로되어 있다는 사실을 무시하고"는 의미가 없다고 생각합니다. 몇 가지 문제가 있지만 GET 쿼리 매개 변수는 HTTPS를 통한 전송 중에 명확하게 이동하지 않습니다. 예를 들어 다음을 참조하십시오. stackoverflow.com/questions/323200/… POST 페이로드도 보호되며 로깅 및 리퍼러 헤더에도 취약하지 않습니다.
codingoutloud

@codingoutloud 내 요점입니다. HTTPS를 통해 암호화되지만 HTTP 페이지에 대한 초기 요청에서는 암호화되지 않았습니다.
Velox

1
@Velox-전체 사이트가 HTTPS로 리디렉션되는 경우 HTTPS가 시작되기 전에 모든 GET 매개 변수가 전송되지 않을 것입니다 (그리고 그 시점 이후 모든 것이 HTTPS로 유지됨). HSTS로 해결할 수있는 쿠키가 전송되는 초기 요청이 여전히 하나 있습니다. SSLStrip에 대한 작은 공격 창은 JavaScript에 의해 무력화 될 수 있지만, 이는 자체 경쟁입니다.
Brilliand

@Brilliand Fair point, 그러나 보안의 약점은 전체를 약하게 만듭니다. 항상 고려할 가치가 있습니다.
Velox

22

이이 아무 문제가 없다, 사실은 (사이트에 대한 가장 좋은 방법입니다 해야 보안 연결을 통해 제공 될이). 실제로, 당신이하고있는 일은 내가 사용하는 구성과 매우 유사합니다.

<VirtualHost 10.2.3.40:80>
  ServerAdmin me@example.com
  ServerName secure.example.com
  RedirectMatch 301 (.*) https://secure.example.com$1
</VirtualHost>

# Insert 10.2.3.40:443 virtual host here :)

301상태 코드는 표시 영구 (예 : 북마크를 업데이트) 미래의 연결에 대한 보안 URL을 사용할 수있는 클라이언트를 지시, 리디렉션.

TLS / SSL을 통해서만 사이트를 제공하는 경우 보안 가상 호스트 에서 HSTS ( HTTP Strict Transport Security) 를 활성화하기위한 추가 지침을 권장 합니다.

<IfModule mod_headers.c>
  Header set Strict-Transport-Security "max-age=1234; includeSubdomains"
</IfModule>

이 헤더는 유능한 클라이언트에게 (현재 대부분의 경우) 제공된 도메인 ( 이 경우) 과 함께 HTTPSsecure.example.com다음 1234초 동안 만 사용해야 한다고 지시합니다 . 이 ; includeSubdomains부분은 선택 사항 이며 지시문이 현재 도메인뿐만 아니라 그 아래 도메인에도 적용됨을 나타냅니다 alpha.secure.example.com. HSTS 헤더는 SSL / TLS 연결을 통해 제공 될 때 브라우저 에서만 허용됩니다!

현행 베스트 프랙티스에 대해 서버 구성을 테스트하려면 Qualys의 SSL 서버 테스트 서비스를 무료로 사용하십시오. 나는 적어도 A-를 득점하는 것을 목표로하고 있습니다 (타원 곡선 암호화에 대한 지원이 없기 때문에 Apache 2.2보다 더 많은 것을 얻을 수는 없습니다).


헤더 Strict-Transport-Security: max-age=0를 전송하면 이전 지시문이 무효화됩니다. 항상 허용 되려면 HTTPS를 통해 전송 해야 하지만 도메인에서 HTTP를 사용해야한다고 결정하는 경우 편리하게 취소 할 수 있습니다.
Calrion

5

와 ! HTTP를 HTTPS로 리디렉션하는 것은 매우 좋은 일이며 단점이 없습니다.

브라우저의 인증서에 대한 사용자에게 친숙하지 않은 경고를 피하기 위해 클라이언트에 올바른 CA가 있는지 확인하십시오.

또한 HTTPS로 리디렉션하도록 Apache를 설정 한 방식은 괜찮습니다.


5

http를 https로 리디렉션하는 것이 좋지 않습니까?

아뇨, 전혀 아닙니다. 실제로, 좋은 일입니다!

리디렉션시 :

다시 쓰기완전히 제거하여 더 효율적일 수 있습니다 . 비슷한 상황에 대한 구성은 다음과 같습니다.

<VirtualHost *:80>
  ServerName domainname.com

  <IfModule mod_alias.c>
    Redirect permanent / https://domainname.com/
  </IfModule>
</VirtualHost>

4

HTTPS는 완전하지 않습니다. 물론, 일반적으로 HTTPS를 강제하는 것이 좋습니다. 일반 범죄자가 사용자에게 나쁜 일을하는 것을 방지합니다.

그러나 SSLCiphers 설정과 같은 SSL 설정을 확인하십시오. RC4 암호화, SSLv2 및 SSLv3 프로토콜과 같은 기능을 비활성화하십시오. 또한 시스템의 암호화 시스템 라이브러리가 TLS1.2를 지원하는지 여부를 확인해야합니다.

SSL을 켜십시오.


엔트로피는 소진되지 않습니다 ( 적어도 부두를 수행 하지 않고 지구 기반의 공격자를 방어 하는 경우 ). 불충분 한 엔트로피로 시작하거나 임의성을 요구하는 어떤 것도 할 수 없거나 충분한 엔트로피로 시작하고, 얼마나 많은 무작위성을 생성하든 충분한 엔트로피를 유지합니다.
Gilles

죄송합니다, 무엇을 ? 리눅스에는 PRNG 기반의 엔트로피보다는 하드웨어에서 파생 된 강력한 엔트로피를 요구하는 많은 작업이 있으며 풀 깊이가 낮 으면 실제로 차단할 수 있습니다. Linux 시스템에서 충분한 엔트로피로 시작하는 것이 가장 가능하지만 풀을 배수하기 위해 과도하게 사용하면 일부 작업이 차단됩니다.
MadHatter

3

개인적으로 나는 웹에서 연결을 보호하기 위해 SSL을 사용하고 있지만 HTTP 연결이 가능한 모든 장치와 소프트웨어가 SSL을 사용할 수있는 것은 아닙니다. 따라서 사용자가 지원하지 않는 경우 사용자가 피할 수있는 방법을 제공하는 것이 좋습니다. 암호화 기술이 불법 인 일부 국가의 사람들은 귀하의 사이트에 액세스하지 못하게 될 수도 있습니다. 사이트의 안전하지 않은 버전을 강제로 링크하기 위해 링크가없는 암호화되지 않은 방문 페이지를 추가하는 것이 좋습니다. 그러나 사용자가 귀하가 말한대로 구체적으로 선택하지 않은 경우 HTTPS 버전으로 전달하십시오.


일반 HTTP 랜딩 페이지를 갖는 것과 같은 솔루션의 문제점은 제대로 분리 되었더라도이 페이지가 조작 가능하다는 것입니다. 즉, 사이트의 HTTPS 버전에 대한 링크가 방문자에게 그대로 전달된다는 보장은 없습니다.
Håkan Lindqvist

3

광범위한 브러시 스트로크 문제는 다음과 같습니다.

  • MITM / SSLSTRIP : 이것은 큰 경고입니다. HTTPS를 통해 사이트를 제공 하려면 사이트에서 HTTP를 비활성화하십시오 . 그렇지 않으면 SSLSTRIP를 포함한 다양한 중간자 (man-in-the-middle) 공격에 사용자를 개방하여 요청을 가로 채고 HTTP를 통해 자동으로 서비스를 제공하여 자체 악성 코드 스크립트를 스트림에 삽입합니다. 사용자가 알지 못하면 실제로 세션이 안전하지 않을 때 세션이 안전 하다고 생각 합니다.

    • 그러나 이것의 문제는 사이트가 공개 사이트이고 실수로 HTTP를 비활성화하면 많은 방문자를 잃을 수 있다는 것입니다. 사이트가 HTTP로로드되지 않으면 HTTPS를 시도하는 것도 아마 일어나지 않을 것입니다 .
  • 사이트에 보안 로그인이 필요한 경우 전체 사용자 세션을 보호해야합니다. HTTPS를 통해 인증하지 말고 사용자를 다시 HTTP로 리디렉션하십시오. 다시 말하면 사용자가 MITM 공격에 취약 해집니다. 요즘 인증에 대한 표준 접근 방식은 한 번 인증 한 다음 인증 토큰을 쿠키로주고받는 것입니다. 그러나 HTTPS를 통해 인증 한 다음 HTTP로 리디렉션하면 중간자 (man-in-the-middle)가 해당 쿠키를 가로 채서 보안을 우회하여 마치 인증 된 사용자 인 것처럼 사이트를 사용할 수 있습니다.

  • HTTPS의 "성능"문제는 모든 실제적인 목적으로 새 연결 작성과 관련된 핸드 셰이크로 제한됩니다. URL에서 여러 HTTPS 연결의 필요성을 최소화하기 위해 할 수있는 일을하십시오. HTTP를 통해 콘텐츠를 제공하는 경우에도 마찬가지입니다. SPDY를 읽으면 모든 작업이 단일 연결을 통해 단일 URL의 모든 콘텐츠를 제공하려고한다는 것을 알 수 있습니다. 예. HTTPS 사용은 캐싱에 영향을줍니다. 그러나 요즘에는 정적이며 캐시 가능한 콘텐츠 인 웹 사이트는 몇 개입니까? 변경되지 않은 데이터를 반복해서 검색하는 중복 데이터베이스 쿼리를 최소화하고 값 비싼 코드 경로가 필요 이상으로 자주 실행되는 것을 방지하기 위해 웹 서버에서 캐싱을 사용하여 비용을 절감 할 수 있습니다.


실제로 sslstrip을 해결하기 위해 할 수있는 일은 HSTS를 사용하는 것입니다 (바람직하게 HSTS 설정을 미리로드하십시오 ). 일반 HTTP를 통한 요청을 수락하는지 여부와 관련하여 실제로 중요하지 않은지 여부에 관계없이 MITM은 HTTPS 요청 만 수락하더라도 일반 HTTP (HTTPS 사이트에 프록시 처리 가능)를 통해 응답 할 수 있습니다.
Håkan Lindqvist

@ HåkanLindqvist 정말 당신에게서 downvote를 얻었습니까? HTTPS를 통해 인증하지 않고 나머지 세션 동안 HTTP로 전환하는 것과 관련하여 잘못된 조언이나 좋은 조언을 했습니까? HTTPS 성능 신화와 관련하여 잘못된 조언을 제공 했습니까? 또한 클라이언트가 처음에 HTTPS를 사용하여 연결을 시도하면 MITM은 브라우저에서 경고를 트리거하지 않고 가로 채서 응답 할 수 없습니다. 인증서를 도난 당하거나 위조 한 인증서가 없으면 인증서가 일치하지 않기 때문입니다. 반면, 사이트에서 HTTP 연결을 허용하면 가로 채기가 더 쉽습니다. 어느 쪽이든, HTTPS는 막대를 올립니다.
Craig

.. 물론 HSTS 사용에 전적으로 동의합니다.
Craig

대답에 대한 나의 문제는 실제로는 그렇지 않은 동안 (신화를 말하면서) sslstrip을 해결한다고 주장하는 목록의 첫 번째 항목입니다. 내가 처음으로 언급 한 내용은 MITM이 활성화되어있는 경우 (처음에는 sslstrip에 필요한 경우) 공격자가 클라이언트의 관점에서 본질적으로 "사이트"가 될 수 있다는 것입니다. 클라이언트로부터 일반 HTTP 연결을 수락할지 여부를 결정하는 것은 공격자입니다. 실제 웹 서버가 이와 관련하여 동작하는 방식은 공격자가 수행 할 수있는 작업에 영향을 미치지 않습니다.
Håkan Lindqvist

@ HåkanLindqvist 방문자가 의도적으로 HTTPS와 연결을 시도하는 경우를 제외하고 공격자는 서버 인증서를 훔치거나 성공적으로 위조해야하는 경우가 아니라면 브라우저에서 플래그를 던지지 않고 해당 요청을 충족시킬 수 없습니다. 연결을 HTTP로 전환하기 위해 수행하십시오. HTTPS는 여전히 막대를 높입니다. 물론 방문자가 HTTP를 통해 초기 연결을 시도하면 모든 베팅이 완전히 해제됩니다.
Craig

1

이것은 원래 질문에 대한 대답은 아니지만, Chrome 확장 프로그램 HTTPSEverywhere를 사용하는 경우 (다른 브라우저에서도 비슷한 확장 프로그램이 있다고 확신합니다) 확장 프로그램은 HTTP가있는 사이트를 HTTPS가있는 동일한 사이트로 자동 리디렉션합니다. 나는 그것을 잠시 동안 사용 해 왔으며 아무런 문제가 없었습니다 (느린 속도를 제외하고는 테스트하지 않았습니다). HTTPSEverywhere는 서버 측의 특정 규칙에 따라 변경 될 수 있지만 해당 영역에서 많은 작업을 수행하지 않았으므로 정확한 세부 정보가 확실하지 않습니다.

실제 질문으로 돌아가서 HTTPSEverywhere와 같은 것을 사용하면 HTTP 전용을 사용하는 인센티브가 적습니다. 필요할 때 올바른 규칙을 설정하는 것이 어렵다고 생각합니다.


1

HTTP를 통한 HTTPS의 유일한 기술적 단점은 일반 HTTP보다 HTTPS 요청을 처리하는 데 계산 비용이 많이 든다는 것입니다

그러나 대부분의 최신 서버는 고성능 CPU를 가지고 있기 때문에로드 밸런서를 사용하고있을 가능성이 매우 높은 트래픽 수준에 있지 않으면 이러한 영향은 무시할 수 있습니다.

SSL / TLS가 작동해야하는 SPDY와 같은 프로토콜의 출현으로, 이는 실제로 여러 요청과 관련하여 상당한 성능 향상을 제공하고 자산을 클라이언트에 더 빠르게 전체적으로 제공함으로써 위에서 언급 한 계산 오버 헤드를 방지합니다.


HTTPS 성능의 문제는 더 많은 왕복이 포함되어 있고 비대칭 암호화 / 복호화가 대칭 암호화 / 복호화보다 훨씬 비싸기 때문에 새 연결을 구축하는 데 비용이 많이 든다는 것입니다. 연결 핸드 셰이크가 공유 대칭 암호화 키를 설정하면 진행중인 오버 헤드는 거의 관련이 없습니다 (매우 작음). SPDY를 읽으면 모든 멋진 기능의 목표가 본질적으로 단일 연결을 통해 URL의 모든 내용을 제공하여 연결 핸드 셰이크 오버 헤드를 완화시키는 것입니다.
Craig

1

https로 리디렉션하는 것이 좋지만 리디렉션을 구성하는 방법에 따라 다릅니다.

security.stackexchange.com대한 답변에서 제안한 것처럼 들어오는 http 요청을 https 연결로 리디렉션하기위한 전용 가상 서버를 만드는 것은 매우 현명하게 들리며 추가적인 보안 위협을 차단합니다. Apache의 구성은 다음과 같습니다.

# Virtual host for rerouting
<VirtualHost *:80>
    ServerName www.example.com
    Redirect permanent / https://www.example.com/
</VirtualHost>

# Virtual host for secure hosting on https
<VirtualHost *:443>
    ServerName www.example.com
    SSLEngine on
    Header set Strict-Transport-Security "max-age=8640000;includeSubdomains"

    ...site settings...

</VirtualHost>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.