SSL 인증서 설치 방법, Apache·Nginx 설정

핵심 요약
  • 설치에 필요한 것은 개인키, 서버 인증서, 중간 인증서이며 certbot을 쓴다면 fullchain.pem과 privkey.pem을 지정합니다.
  • Apache 2.4.8 이상은 SSLCertificateFile 하나에 중간 인증서까지 넣을 수 있고, Nginx는 서버 인증서를 먼저 둔 체인 파일을 씁니다.
  • 설정 후에는 문법 검사와 reload를 하고, HTTP에서 HTTPS로 가는 301 리디렉션을 한 곳에서만 설정합니다.

SSL 인증서를 발급받았다면 다음 단계는 웹 서버가 그 파일을 읽도록 설정하는 일입니다. 설치에 필요한 파일은 보통 세 가지입니다. 개인키(비밀 열쇠), 서버 인증서, 그리고 발급 기관과의 연결 고리인 중간 인증서입니다. 이 가운데 개인키는 외부에 유출되면 안 되므로 권한 관리에 신경 써야 합니다.

이 글은 Apache와 Nginx의 설치 설정, 체인 파일을 올바른 순서로 두는 법, 설정 검사와 reload, HTTP에서 HTTPS로의 리디렉션까지 순서대로 설명합니다. 모든 설정 예시의 경로와 도메인은 자기 환경에 맞게 바꿔야 합니다.

설치 전에 준비할 파일

certbot으로 발급받았다면 파일은 /etc/letsencrypt/live/도메인/ 아래에 만들어집니다. certbot 문서는 서버 설정이 이 경로를 직접 가리키도록 하라고 안내하며, 파일을 복사해 쓰지 말라고 합니다. 갱신할 때 이 폴더의 파일이 새 것으로 바뀌기 때문입니다.

파일내용설정에서의 용도
privkey.pem개인키키 파일 지정
fullchain.pem서버 인증서와 중간 인증서인증서 파일 지정
cert.pem, chain.pem서버 인증서, 중간 인증서 따로이 둘을 쓰려면 둘 다 지정해야 함

유료 인증서를 받았다면 판매 기관이 서버 인증서와 중간 인증서(CA 번들)를 따로 줄 수 있습니다. 그때는 둘을 이어 붙인 체인 파일을 만들어 씁니다.

Nginx에 설치하기

nginx 문서에 따르면 ssl_certificate 파일에 중간 인증서를 함께 넣을 때 서버 인증서가 먼저, 중간 인증서가 그다음에 와야 합니다. 직접 합치는 명령은 다음과 같습니다.

cat example.com.crt intermediate.crt > example.com.chain.crt

설정 예시입니다.

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

    ssl_certificate     /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_protocols       TLSv1.2 TLSv1.3;
}

문서 기준으로 ssl_protocols의 기본값은 TLSv1.2 TLSv1.3이므로, 특별한 이유가 없다면 따로 적지 않아도 됩니다. 적용 순서는 아래와 같습니다.

sudo nginx -t
sudo systemctl reload nginx

발급자, 만료일, 호스트명 일치, 신뢰 체인을 바로 확인할 수 있습니다.

SSL 인증서 검사하기

Apache에 설치하기

Apache는 mod_ssl 모듈이 필요하며 가상 호스트에 SSLEngine을 켜야 합니다. mod_ssl 문서에 따르면 SSLCertificateFile에는 서버 인증서 뒤에 중간 인증서를 잎(서버)에서 루트 방향 순서로 포함할 수 있고, 이 기능은 2.4.8 이상에서 지원되며 기존 SSLCertificateChainFile을 대체합니다.

<VirtualHost *:443>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example

    SSLEngine on
    SSLCertificateFile    /etc/letsencrypt/live/example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
</VirtualHost>

Debian/Ubuntu 계열에서는 모듈을 켜는 단계가 필요할 수 있습니다. 배포판마다 명령이 다르므로 사용 중인 배포판 문서를 확인하세요.

sudo a2enmod ssl
sudo apachectl configtest
sudo systemctl reload apache2

문서는 키 파일을 시작할 때 root 권한으로 읽으므로 root만 읽을 수 있게 두라고 안내합니다. 또 키를 인증서와 한 파일에 합치는 것은 강하게 권하지 않는다고 설명합니다.

HTTP에서 HTTPS로 리디렉션

HTTPS를 설치한 뒤에도 http 주소로 들어오는 방문자가 있으므로, 80번 포트 요청을 HTTPS로 보내는 설정이 필요합니다. 주소가 영구히 바뀌는 것이므로 영구 리디렉션(301)을 씁니다. MDN에 따르면 영구 리디렉션은 검색 엔진에 원래 주소를 새 주소로 바꾸라고 알려 줍니다.

Nginx 예시입니다.

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

Apache 예시입니다. MDN은 Redirect 지시어의 기본이 302이므로 영구 이동은 permanent나 301을 명시하라고 설명합니다.

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    Redirect permanent / https://example.com/
</VirtualHost>

리디렉션 규칙은 한 곳에만 두세요. 웹 서버 설정과 .htaccess, 워드프레스 플러그인에서 동시에 걸면 반복 오류가 생깁니다. 이 문제는 HTTPS 연결 오류 해결 글에서 자세히 설명합니다.

설치 후 확인

  1. curl -I https://example.com/으로 응답 코드를 확인한다.
  2. curl -I http://example.com/으로 301 응답과 이동 주소를 확인한다.
  3. 브라우저에서 자물쇠와 인증서 만료일을 확인한다.
  4. www 있는 주소와 없는 주소를 모두 열어 본다.
  5. 중간 인증서가 빠지지 않았는지 외부 SSL 검사 도구로 점검한다.

만료일 확인 명령은 SSL 인증서 만료일 확인 방법에 있습니다. 설치가 끝나면 갱신이 자동으로 돌아가는지도 함께 점검하세요. 갱신 방법은 SSL 인증서 갱신 방법에서 설명합니다. HSTS는 HTTPS가 안정적으로 동작하는 것을 확인한 뒤에 단계적으로 적용합니다.

SSL 인증서 검사발급자·유효기간·호스트명 일치·신뢰 체인을 무료로 확인할 수 있습니다.

SSL 인증서 검사하기

자주 묻는 질문

개인키 파일은 어디에 두어야 하나요?

Apache 문서는 키 파일을 시작 시 root가 읽으므로 root만 읽을 수 있게 두라고 안내합니다. 키를 인증서와 같은 파일에 합치는 것은 권하지 않는다고 설명합니다.

Apache 2.4.8 미만이면 어떻게 하나요?

예전 방식인 SSLCertificateChainFile로 중간 인증서 파일을 따로 지정합니다. 이 지시어는 2.4.8부터 폐지 대상이 되었으며 가능하면 서버 버전을 올리는 편이 좋습니다.

설정을 바꿨는데 적용이 안 돼요.

설정 파일 수정만으로는 반영되지 않고 웹 서버를 reload해야 합니다. 먼저 nginx -t 또는 apachectl configtest로 문법을 확인한 뒤 reload하세요. Apache는 인증서 파일이 바뀌면 재시작이 필요할 수 있다고 문서가 안내합니다.

리디렉션은 301과 302 중 무엇을 쓰나요?

HTTP에서 HTTPS 이동은 영구적이므로 301이 일반적입니다. MDN에 따르면 Apache의 Redirect 지시어는 기본값이 302이므로 permanent 또는 301을 명시해야 합니다.

확인한 자료

기술 정보는 2026-10-24에 위 자료로 확인했습니다. 소프트웨어 버전·기본값·서비스 정책은 바뀔 수 있으므로 적용 전 각 문서의 최신 내용을 확인하세요. 이 글은 일반 정보이며 특정 서비스 가입을 권하지 않습니다.