Home Knowledge base Skyline Cloud SSL 인증서 설치 및 HTTPS 강제 적용 방법 KNOWLEDGE BASE

SSL 인증서 설치 및 HTTPS 강제 적용 방법

cPanel AutoSSL, Nginx와 Apache의 Let's Encrypt를 이용해 SSL/TLS 인증서를 설치하고, 모든 트래픽을 HTTPS로 강제 리디렉션하며 HSTS를 활성화하는 방법을 단계별로 안내합니다.

SSL 인증서 설치 및 HTTPS 강제 적용 방법

SSL/TLS 인증서는 방문자의 브라우저와 서버 사이의 연결을 암호화하여 http://https://로 바꿔 줍니다. 로그인 자격 증명, 결제 데이터, 양식 제출 내용을 보호하며, 모든 최신 사이트에 대한 기본적인 기대 사항입니다. 브라우저는 일반 HTTP 페이지를 "안전하지 않음"으로 표시하고, 검색 엔진은 HTTPS를 순위 신호로 취급합니다.

이 튜토리얼에서는 인증서를 설치하는 세 가지 일반적인 방법(cPanel AutoSSL, Nginx에서의 Let's Encrypt, Apache에서의 Let's Encrypt)을 다룬 다음, 모든 요청을 HTTPS로 강제하고 HSTS를 활성화하는 방법을 설명합니다. 이 단계들은 Skyline Cloud 호스팅을 포함해 표준을 준수하는 모든 호스트에서 동작합니다.

시작하기 전에

다음 사항을 확인하세요:

  • DNS가 서버를 가리키고 있어야 합니다. 도메인의 A 레코드(그리고 IPv6를 사용한다면 AAAA 레코드)는 서버의 공인 IP를 가리켜야 합니다. 인증 기관은 포트 80/443을 통해 도메인 소유권을 검증하므로, 이 작업이 먼저 활성화되어 있어야 합니다.
  • 방화벽과 보안 그룹에서 포트 80과 443이 열려 있어야 합니다.
  • 셸 또는 패널 접근 권한이 있어야 합니다. cPanel 사용자는 제어판이 필요하고, VPS 및 전용 서버 사용자는 sudo 권한이 있는 SSH가 필요합니다.

도메인이 어디로 연결되는지는 다음 명령으로 확인할 수 있습니다:

dig +short A example.sa

인증서 유형 선택

유형 검증 방식 적합한 대상
도메인 검증(DV) 도메인 소유권만 확인 블로그, 소규모 비즈니스, 대부분의 사이트
조직 검증(OV) 사업체 신원 확인 기업 사이트
확장 검증(EV) 완전한 법적 심사 은행, 대형 전자상거래
와일드카드 *.example.sa 포함 다수의 서브도메인

대부분의 사이트에는 Let's Encrypt의 무료 DV 인증서로 충분합니다. OV/EV 또는 지원이 보장되는 와일드카드가 필요한 경우, Skyline은 호스팅 요금제의 일부로 관리형 인증서를 발급합니다.

옵션 1 — AutoSSL을 사용하는 cPanel (가장 쉬움)

사이트가 공유 또는 관리형 cPanel 호스팅에서 운영된다면, AutoSSL이 모든 것을 자동으로 처리합니다.

  1. cPanel에 로그인합니다.
  2. Security(보안)에서 SSL/TLS Status(SSL/TLS 상태)를 엽니다.
  3. 적용할 도메인을 체크하고 Run AutoSSL(AutoSSL 실행)을 클릭합니다.
  4. 몇 분 이내에 자물쇠가 녹색으로 바뀌고 무료 DV 인증서가 설치되며 자동 갱신으로 설정됩니다.

다른 곳에서 구매한 인증서를 설치하려면 SSL/TLS → Manage SSL sites(SSL 사이트 관리)로 이동하여 인증서(CRT), 개인 키(KEY), CA 번들을 붙여넣은 다음 Install Certificate(인증서 설치)를 클릭합니다.

옵션 2 — Nginx에서의 Let's Encrypt (VPS / 클라우드 서버)

클라우드 서버나 VPS에서는 Certbot을 사용합니다. Ubuntu/Debian에서:

sudo apt update
sudo apt install certbot python3-certbot-nginx -y

다음 한 줄의 명령으로 인증서를 발급하고 자동으로 구성합니다:

sudo certbot --nginx -d example.sa -d www.example.sa

Certbot은 도메인을 검증하고, 인증서를 발급받으며, 서버 블록을 편집하고, HTTPS 리디렉션 설정을 제안합니다. 프롬프트가 나타나면 2: Redirect(리디렉션)를 선택하여 HTTPS를 자동으로 강제합니다.

직접 수동으로 설정하려는 경우, 서버 블록은 발급된 파일을 참조해야 합니다:

server {
    listen 443 ssl;
    server_name example.sa www.example.sa;

    ssl_certificate     /etc/letsencrypt/live/example.sa/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.sa/privkey.pem;

    # Modern TLS only
    ssl_protocols TLSv1.2 TLSv1.3;

    root /var/www/example.sa;
    index index.html index.php;
}

테스트하고 다시 로드합니다:

sudo nginx -t && sudo systemctl reload nginx

옵션 3 — Apache에서의 Let's Encrypt

Apache 플러그인을 설치합니다:

sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d example.sa -d www.example.sa

Certbot은 SSL 가상 호스트를 생성하고, 리디렉션을 선택하면 HTTPS 규칙을 대신 추가해 줍니다. 생성된 <VirtualHost *:443> 블록은 /etc/letsencrypt/live/ 아래의 SSLCertificateFileSSLCertificateKeyFile을 참조합니다.

HTTPS 강제 적용

인증서를 설치하더라도 방문자가 안전하지 않은 http:// 버전에 접근하는 것을 막지는 못합니다. 영구(301) 리디렉션을 사용하여 모든 HTTP 트래픽을 HTTPS로 리디렉션해야 합니다.

Nginx — 전용 포트 80 블록을 추가합니다:

server {
    listen 80;
    server_name example.sa www.example.sa;
    return 301 https://$host$request_uri;
}

Apache.htaccess 또는 가상 호스트에서:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

cPanelDomains → Force HTTPS Redirect(도메인 → HTTPS 리디렉션 강제)에서 각 도메인에 대해 스위치를 켭니다.

HSTS 활성화

HTTP Strict Transport Security(HSTS)는 브라우저가 오직 HTTPS로만 연결하도록 지시하여, 잠시 발생하는 안전하지 않은 첫 요청을 없애고 다운그레이드 공격을 방지합니다. 리디렉션이 제대로 작동하는 것을 확인한 후 이 헤더를 추가하세요.

Nginx (443 서버 블록 내부):

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

Apache:

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

테스트하는 동안에는 더 짧은 max-age로 시작한 다음 값을 높이세요. 모든 서브도메인이 HTTPS를 제공할 때에만 includeSubDomains를 추가하세요.

모든 것이 작동하는지 확인하기

  1. http://example.sa에 접속합니다 — https://로 리디렉션되어야 합니다.
  2. 브라우저에서 자물쇠 표시와 유효한 인증서를 확인합니다.
  3. 터미널에서 리디렉션과 헤더를 확인합니다:
curl -sI http://example.sa | grep -i location
curl -sI https://example.sa | grep -i strict-transport
  1. 외부 스캔(예: SSL Labs)을 실행하여 A 등급, 올바른 인증서 체인, 혼합 콘텐츠 없음을 확인합니다.

페이지가 여전히 "안전하지 않음"으로 표시된다면 혼합 콘텐츠를 찾아보세요. 즉, http://로 하드코딩된 자산(이미지, 스크립트, CSS) 말입니다. 이를 https:// 또는 프로토콜 상대 URL로 업데이트하세요.

갱신

Let's Encrypt 인증서는 90일간 유효합니다. Certbot은 systemd 타이머 또는 cron 작업을 자동으로 설치합니다. 다음 명령으로 확인하세요:

sudo certbot renew --dry-run

cPanel AutoSSL과 Skyline 관리형 인증서는 스스로 갱신되므로 따로 신경 쓸 것이 없습니다.

데이터 거주지(Data Residency) 참고 사항

대상 고객이 사우디아라비아 또는 GCC에 있다면, **국내(in-Kingdom)**에서 호스팅하고 TLS를 종료하면 트래픽과 인증서 키가 PDPL, NCA, SDAIA 요구 사항에 부합하는 인프라에 보관됩니다. 또한 문제가 발생할 경우 현지 아랍어 지원도 받을 수 있습니다. 이것이 바로 Skyline의 클라우드비즈니스 이메일 호스팅의 기반이 되는 모델입니다. 인증서 유형, 체인, 문제 해결에 관한 자세한 내용은 SSL 인증서 리소스 허브를 참고하세요.

시작하기

SSL이 포함되고 국내 데이터 거주지를 갖춘 클라우드 서버, 웹 호스팅 또는 관리형 WordPress 요금제를 구축하세요. Skyline Cloud에서 계정을 만들고 오늘 바로 사이트를 보호하세요.

SKYLINE Engineering

@skyline

The engineering team at SKYLINE Industrial Solutions. We publish field-tested guides drawn from real KSA and GCC deployments.

See author profile
SKYLINE engineering services

Need this implemented for you?

Reading is free — building it right takes a team. SKYLINE engineers ship Skyline Cloud for Aramco vendors, banks, hospitals and government agencies across Saudi Arabia. Talk to us before you start.

Aramco Approved Contractor ISO 9001 · ISO 27001 SAMA CSF aligned NCA ECC ready 247+ KSA clients

Comments

0 total · 0 threads
Be the first to leave a comment.