AutoSSL
인증서 배포

AWS S3

SSL 인증서를 AWS S3 버킷에 자동으로 배포하는 방법.

개요

AutoSSL은 SSL 인증서 파일을 Amazon S3 버킷에 자동으로 업로드할 수 있습니다. 각 인증서는 버전 아카이브 경로에 보관되고, 이후 시스템(예: Nginx, Caddy, S3에서 인증서를 가져오는 스크립트)이 찾기 쉽도록 latest/ 경로도 함께 갱신됩니다.

이 배포를 관리하고 실행하는 방법은 배포 관리를 참고하세요.

구성 매개변수

AutoSSL 콘솔에서 이 배포 대상을 추가하거나 편집할 때 다음 매개변수를 구성합니다.

매개변수설명예시
리전S3 버킷이 있는 AWS 리전.us-east-1
버킷 이름인증서 파일을 업로드할 S3 버킷 이름.my-ssl-certs
객체 키 접두사(선택) 버킷 안에서 인증서 파일을 정리하는 접두사. 설정하면 이 접두사 아래에 업로드됩니다. 끝의 슬래시는 생략할 수 있습니다.certs/example.com/

작동 방식

AutoSSL이 인증서를 AWS S3 버킷(예: my-ssl-certs (us-east-1, 접두사 certs/example.com/))에 배포할 때 다음을 수행합니다.

  1. 인증서 준비:

    • 전체 인증서 체인을 PEM 파일로 나눕니다. cert.pem(리프 인증서), privkey.pem(개인 키, PKCS#8), chain.pem(중간 체인), fullchain.pem(전체 체인)입니다.
    • 추적을 위해 인증서 메타데이터가 담긴 README.md를 만들고 https://autossl.dev 링크를 넣습니다.
    • 인증서 notBefore 날짜와 SHA1 지문으로 아카이브 디렉터리 이름을 만듭니다(형식: YYYY-MM-DD_<first 8 chars of SHA1>).
  2. 파일 업로드:

    • 인증서 파일(PEM 4개와 README.md)을 버킷의 두 경로에 업로드합니다.
      • 아카이브 경로 — certs/example.com/2026-05-30_e5f6a7b8/cert.pem(privkey.pem, chain.pem, fullchain.pem, README.md 포함). 발급마다 고유하며 덮어쓰지 않습니다.
      • latest 경로 — certs/example.com/latest/cert.pem(privkey.pem, chain.pem, fullchain.pem, README.md 포함). 가장 최근에 업로드한 인증서를 가리킵니다.

latest/ 경로를 쓰면 이후 서비스가 고정된 S3 객체 키에서 현재 인증서를 가져올 수 있습니다. 이전 인증서는 버전별 아카이브 디렉터리에 그대로 남습니다.

예시 버킷 구조

인증서를 여러 번 갱신하면 버킷 구조는 다음과 같습니다.

certs/example.com/
├── 2026-03-01_a1b2c3d4/
│   ├── cert.pem
│   ├── privkey.pem
│   ├── chain.pem
│   ├── fullchain.pem
│   └── README.md
├── 2026-05-30_e5f6a7b8/
│   ├── cert.pem
│   ├── privkey.pem
│   ├── chain.pem
│   ├── fullchain.pem
│   └── README.md
└── latest/
    ├── cert.pem
    ├── privkey.pem
    ├── chain.pem
    ├── fullchain.pem
    └── README.md

개인 키 형식

privkey.pem은 PKCS#8 형식(-----BEGIN PRIVATE KEY-----)입니다. Nginx, Caddy, Traefik, OpenSSL 1.1+ 등 최신 웹 서버와 도구에서 널리 지원합니다.

환경에서 PKCS#1 형식(예: RSA 키의 -----BEGIN RSA PRIVATE KEY-----)이 필요하면 사용 전에 로컬에서 변환하세요.

openssl rsa -in privkey.pem -out privkey-pkcs1.pem

액세스 키 요구 사항

AWS API를 호출하려면 AWS 액세스 키가 필요합니다.

필요한 권한

액세스 키는 대상 S3 버킷에 객체를 업로드할 권한이 있는 AWS IAM 사용자 것이어야 합니다.

대상 버킷 접두사에 최소한 다음 작업이 포함된 IAM 정책을 사용자에게 연결하세요.

  • s3:PutObject

최소 IAM 정책 예시:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::my-ssl-certs/certs/example.com/*"
    }
  ]
}

IAM 권한 관리는 AWS IAM 문서를 참고하세요.

AWS S3 | AutoSSL