모든 WordPress 웹사이트를 위한 무료 SSL
게시 됨: 2022-03-10전자 상거래 웹 사이트가 있는 경우 신용 카드를 안전하게 처리하려면 SSL이 필수입니다. 하지만 결제를 처리하지 않는 경우에도 보안 HTTP(또는 HTTPS)를 심각하게 고려해야 합니다. 특히 이제 무료로 빠르게 설정하는 방법을 보여 드리겠습니다. 시작하자.
SSL이란 무엇이며 왜 주의해야 합니까?
간단히 말해서 SSL은 HTTPS의 "S"입니다. HTTP에 암호화 계층을 추가하여 받는 사람이 실제로 주장하는 사람인지 확인하고 승인된 받는 사람만 메시지를 해독하여 내용을 볼 수 있도록 합니다.
SmashingMag에 대한 추가 정보:
- Nginx, Varnish 및 Apache를 사용하는 모든 곳에서 HTTPS
- 이전 SSL 키로 새 SSL 인증서를 발급하는 방법
- HTTP/2 준비: 웹 디자이너를 위한 가이드
신용 카드 번호와 같은 민감한 정보(기본적으로 모든 개인 정보)는 항상 HTTPS를 통해 제공되어야 합니다. 그러나 뉴스 웹사이트, 블로그, 검색 엔진 및 대부분의 주류 브랜드 웹사이트에서 볼 수 있듯이 HTTPS를 통해 모든 콘텐츠를 제공하는 추세가 증가하고 있습니다. 따라서 웹사이트에서 결제를 처리하지 않는 경우에도 HTTPS를 고려해야 하는 충분한 이유가 있으며 그 중 일부는 다음과 같습니다.
- 신뢰성 . 비기술적인 청중도 브라우저 주소 표시줄에 있는 작은 녹색 자물쇠를 신뢰와 신뢰성과 연관시킵니다.
- 암호 보호 . 아마도 귀하의 웹 사이트는 새끼 고양이 비디오만 호스팅합니다. 그러나 사용자가 온라인 뱅킹에도 사용하는 비밀번호로 Wi-Fi를 통해 웹사이트에 로그인하는 경우 해당 자격 증명을 공개적으로 방송하여 심각한 보안 침해를 조장할 수 있습니다.
- 미래 보장 . 많은 웹사이트가 여전히 HTTP를 통해 제공되지만 HTTPS에 대한 부인할 수 없는 추세가 있으며 이는 사용자가 웹 보안에 대해 점점 더 교육을 받으면서만 증가할 것입니다. 역사의 오른쪽에 서십시오.
- 검색 엔진 최적화 . Google은 공식적으로 HTTPS가 순위 신호로 사용된다고 발표했습니다. 즉, Google은 검색 결과에서 순위를 높여 HTTPS 웹사이트에 보상하고 있습니다.
HTTPS에 대한 일반적인 주장은 성능이 저하된다는 것입니다. 암호화 및 암호 해독 프로세스에 추가 밀리초가 소요되는 것은 사실이지만 Google 및 Facebook과 같이 성능을 중시하는 회사가 HTTPS를 통해 모든 콘텐츠를 제공한다는 사실에서 알 수 있듯이 대부분의 경우 무시할 수 있습니다. 그리고 사실, HTTPS는 개별적으로 제공되는 많은 CSS 파일과 같은 기존 성능 문제를 악화시킬 수 있지만 성능에 대한 기본 모범 사례를 따르면 완화됩니다. 그리고 HTTP/2의 채택으로 HTTPS의 성능 비용은 훨씬 더 낮아졌습니다. 결론은 웹 사이트가 밀리초 단위로 중요할 정도로 최적화되었거나 성능이 너무 낮은 경우에만 성능 저하가 의미 있는 억제책이라는 것입니다.
HTTPS를 무료로 설정하는 방법
HTTPS를 무료로 설정하는 첫 번째 단계는 클라우드 DNS 서비스에 가입하는 것입니다. DNS가 무엇인지 모르는 경우 진행하기 전에 잠시 시간을 내어 학습하는 것이 좋습니다. 유쾌한 How DNS Works는 그것을 엉뚱한 만화로 분해하는 훌륭한 일을 합니다. 그렇지 않으면 DNS가 example.com
(인간이 이해하는)과 같은 도메인 이름이 104.28.2.167
(컴퓨터가 이해하는)과 같은 IP 주소에 연결되는 시스템이라는 사실만 알아두세요. 많은 옵션이 있지만 설정이 정말 빠르고 대시보드가 직관적이며 무료 플랜이 여러 강력한 기능과 함께 제공되기 때문에 저는 CloudFlare의 팬입니다.
CloudFlare 설정
CloudFlare 계정에 등록한 후에는 첫 번째 웹사이트를 구성하기 위한 쉬운 마법사가 진행됩니다. 이 마법사는 도메인 등록 대행자에 로그인하고 네임서버가 CloudFlare를 가리키도록 하는 방법에 대한 지침으로 마무리됩니다. 변경 사항이 전파되는 데 다소 시간이 걸리지만 완료되면 CloudFlare가 웹 사이트의 DNS 레코드를 호스팅합니다. 그런 다음 CloudFlare의 "유연한 SSL" 기능을 켭니다.

"유연한 SSL" 설정을 선택하는 것은 웹사이트 서버에서 자체 SSL 인증서를 구입하여 설치할 필요가 없기 때문에 중요합니다. 여기에 무슨 일이 일어나고 있는지 다이어그램이 있습니다.

보시다시피 CloudFlare는 웹사이트와 클라이언트 간의 트래픽을 보호하는 중개자 역할을 합니다. 이것이 정적 HTML 웹사이트라면 이제 HTTPS( https://yourdomain.com
)를 통해 연결할 수 있습니다. 그러나 WordPress는 수정된 프로토콜을 사용하기 위해 추가 구성이 필요합니다.
HTTP에서 HTTPS로 WordPress 재구성
먼저 대시보드의 "설정" → "일반"에서 "WordPress 주소" 및 "사이트 주소" 설정을 업데이트해야 합니다. 이렇게 하면 대시보드에 다시 로그인해야 합니다.

조심스럽게 진행하십시오. 이러한 설정을 조기에 업데이트하면 자신이 잠길 위험이 있습니다. 예를 들어 웹 사이트가 아직 HTTPS용으로 제대로 구성되지 않고 설정이 업데이트된 경우 웹 사이트를 중단하고 대시보드에 액세스하지 못하게 하는 리디렉션 루프가 발생할 수 있습니다.

이 시점에서 HTTPS를 통해 웹사이트의 홈 페이지를 방문할 수 있어야 합니다. 그러나 페이지 링크는 여전히 HTTP URL을 가리킵니다. WordPress는 페이지 및 이미지에 대한 링크를 절대 URL로 저장합니다. 즉, 프로토콜을 포함한 전체 URL이 데이터베이스에 저장됩니다. 전체 웹사이트가 HTTPS를 통해 일관되게 제공되도록 하려면(혼합 콘텐츠에 대한 경고 없이) 기존 콘텐츠를 업데이트해야 합니다.
레거시 콘텐츠 업데이트
페이지 수가 적은 작은 웹사이트에서 가장 빠른 옵션은 관리 인터페이스에서 기존 페이지를 편집하여 URL을 수동으로 업데이트하는 것입니다. 웹 사이트가 크거나 활발한 블로그가 있는 경우 수동 편집이 실용적이지 않을 수 있습니다. 호스트가 MySQL 쿼리를 실행하기 위해 phpMyAdmin 또는 기타 인터페이스를 제공하는 경우 SQL 탭에서 몇 가지 MySQL 쿼리를 사용하여 이 작업을 매우 쉽게 수행할 수 있습니다. 또는 Windows 사용자 지정의 지침에 따라 명령줄에서 수행할 수 있습니다.
명백한 진술의 위험을 감수 하고 다음 쿼리에서 yourdomain.com
을 실제 도메인으로 바꾸십시오 . 또한 WordPress의 테이블 접두사를 사용자 정의한 경우 wp_
를 관련 접두사로 바꾸십시오.
먼저 게시물과 페이지의 URL을 업데이트합니다.
UPDATE wp_posts SET guid = replace(guid, 'https://yourdomain.com','https://yourdomain.com');
[업데이트: 댓글에서 논의된 대로 guid 필드는 편집하면 안 됩니다.]
wp_postmeta
테이블도 업데이트하십시오.
UPDATE wp_postmeta SET meta_value = replace(meta_value,'https://yourdomain.com','https://yourdomain.com');
마지막으로 게시물이나 페이지의 실제 내용을 업데이트합니다. 이렇게 하면 HTTPS에 대한 모든 백링크가 업데이트됩니다.
UPDATE wp_posts SET post_content = REPLACE(post_content, 'https://yourdomain.com', 'https://yourdomain.com');
이러한 쿼리를 실행한 후 "설정" → "영구 링크"로 이동하여 영구 링크를 새로 고치고 싶을 것입니다. 설정을 다시 기본값으로 변경한 다음 원래 사용하던 설정으로 되돌리기만 하면 됩니다.
이제 웹 사이트 전체에서 메뉴와 링크를 클릭할 수 있어야 하며 프로토콜은 HTTPS를 유지해야 합니다.
혼합 콘텐츠 경고 문제 해결
사용 중인 테마 및 플러그인에 따라 주소 표시줄에 특정 리소스가 안전하게 제공되지 않는다는 경고가 표시될 수 있습니다. 오류가 사용자 정의 테마 또는 플러그인에 의해 추가된 자산과 관련된 경우 HTTP
로 시작하는 URL을 하드코딩하지 말고 JavaScript 및 CSS 파일을 올바르게 대기열에 추가해야 합니다. 대부분의 브라우저에서는 경고를 확장하여 오류를 일으키는 특정 요청을 표시할 수 있습니다. SSL Insecure Content Fixer와 같은 무료 플러그인을 사용해 볼 수도 있습니다. 이 플러그인은 이를 수행하지 못한 타사 플러그인을 수정하려고 시도합니다.
이 시점에서 웹사이트를 방문할 때 URL 표시줄에 녹색 자물쇠가 표시되어야 합니다. WooCommerce 또는 WP eCommerce와 같은 전자 상거래 플러그인을 사용하지 않는다면 끝입니다! 그렇다면 중요한 마지막 단계가 있습니다.
전자 상거래 플러그인과 함께 작동하는 유연한 SSL 얻기
WordPress에는 트래픽이 SSL로 암호화되었는지 여부를 확인하기 위해 플러그인이 의존하는 is_SSL()
이라는 핵심 기능이 있습니다. 위의 방법만 사용하면 암호화가 CloudFlare와 클라이언트 사이에서만 이루어지기 때문에 이 함수는 false
를 반환합니다. PHP가 상호 작용하는 트래픽은 암호화되지 않으므로 해당 기능이 검사하는 슈퍼 글로벌(예: $_SERVER['HTTPS']
)은 유용하지 않습니다. 우리의 목적을 위해 관련 변수는 $_SERVER['HTTP_X_FORWARDED_PROTO']
이며 작성 당시 WordPress에서 인식하지 못했습니다. 이것을 변경해 달라는 요청은 오래 지속되었지만 아직 해결되지 않았습니다.
다행히도 무료 플러그인인 CloudFlare Flexible SSL을 사용하면 즉시 이 문제를 해결할 수 있습니다. 플러그인을 설치하고 활성화하기만 하면 됩니다. 이 기술 은 더 이상 보안을 추가하지 않는다는 것을 기억하십시오. CloudFlare와 웹 사이트 서버 간의 트래픽은 여전히 암호화되지 않으므로 여전히 스니핑에 취약합니다.
유연한 SSL은 전체 SSL이 아닙니다.
CloudFlare의 "범용 SSL" 이니셔티브는 인터넷 보안을 강화하려는 흥미로운 시도이지만 논란이 없는 것은 아닙니다. 주요 관심사는 유연한 SSL이 트래픽 여정의 후반부(서버로 가는)를 암호화하지 않지만 브라우저는 현재 완전한 SSL과 연결하게 된 것과 동일한 녹색 자물쇠를 표시한다는 것입니다. CloudFlare는 블로그에서 다음과 같은 근거를 제공합니다.
소규모 블로그에서는 최첨단 암호화를 사용하는 것이 중요하지 않은 것처럼 보일 수 있지만 기본적으로 암호화된 인터넷의 미래를 발전시키는 데 중요합니다. 인터넷을 통해 암호화된 흐름이 겉보기에는 평범하지만 모든 바이트는 웹을 가로채거나 제한하거나 검열하려는 사람들을 더 어렵게 만듭니다. 즉, HTTPS를 통해 개인 블로그를 사용할 수 있도록 하면 인권 단체, 소셜 미디어 서비스 또는 독립 저널리스트가 전 세계에서 액세스할 수 있는 가능성이 높아집니다. 우리는 함께 위대한 일을 할 수 있습니다.
좋든 나쁘든 유연한 SSL이 여기에 있으며 인터넷은 적응해야 합니다. 한편, 웹 사이트 소유자는 교육을 받고 책임 있는 결정을 내려야 합니다.
HTTP 요청을 HTTPS로 리디렉션
웹사이트가 HTTPS에서 실행되도록 설정한다고 해서 요청이 실제로 프로토콜을 사용하는 것은 아닙니다. 웹사이트가 한동안 존재했다면 사용자가 이미 HTTP로 책갈피를 추가했을 수 있습니다. 다음 스니펫을 웹사이트 루트의 .htaccess
파일 상단에 추가하여 모든 HTTP 요청을 새 프로토콜로 리디렉션할 수 있습니다. 파일이 없으면 안전하게 추가할 수 있습니다.
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule (.*) https://yourdomain.com/$1 [R=301,L] </IfModule>
.htaccess
파일이 이미 있는 경우 해당 파일의 # BEGIN WordPress
행과 # END WordPress
행 사이에 아무 것도 변경하지 않도록 주의하십시오. 이러한 행은 WordPress에서 관리하며 영구 링크가 새로 고쳐질 때마다 해당 섹션의 내용을 덮어씁니다.
축하합니다
웹사이트를 HTTPS로 업그레이드함으로써 웹사이트를 개선하고 사용자를 보호하며 인터넷 발전에 동참하게 되었습니다. 그리고 비용이 들지 않았습니다!