AutoSSL
인증서 배포

S3 Compatible Storage

S3 호환 객체 스토리지 버킷에 SSL 인증서를 자동으로 배포하는 방법.

개요

AutoSSL은 S3 호환 객체 스토리지 버킷에 SSL 인증서 파일을 자동으로 업로드할 수 있습니다. 사용자 지정 HTTPS 엔드포인트와 버킷 이름을 지정하므로, 전용 공급자로 다루지 않는 MinIO, Wasabi, Ceph 등 S3 호환 서비스에 적합합니다.

각 인증서는 버전 아카이브 경로에 보관되고, 이후 시스템(예: Nginx, Caddy, 객체 스토리지에서 인증서를 가져오는 스크립트)이 찾기 쉽도록 latest/ 경로도 함께 갱신됩니다.

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

구성 매개변수

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

매개변수설명예시
엔드포인트S3 호환 API의 HTTPS URL. HTTP 엔드포인트는 지원하지 않습니다.https://minio.example.com
리전(선택) 요청 서명에 쓰는 리전. 기본값은 us-east-1입니다. 공급자가 요구하는 값을 사용하세요.us-east-1
버킷 이름인증서 파일을 업로드할 버킷 이름.my-ssl-certs
객체 키 접두사(선택) 버킷 안에서 인증서 파일을 정리하는 접두사. 설정하면 이 접두사 아래에 업로드됩니다. 끝의 슬래시는 생략할 수 있습니다.certs/example.com/
경로 스타일 강제(선택) 경로 스타일 URL(https://endpoint/bucket/key)을 사용합니다. MinIO와 일부 자체 호스팅 S3 호환 서비스에서 켜세요.true(MinIO)

엔드포인트는 HTTPS여야 합니다. 보안을 위해 AutoSSL은 HTTP 엔드포인트를 거부합니다.

작동 방식

AutoSSL이 인증서를 S3 호환 버킷(예: my-ssl-certs, 접두사 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/ 경로를 쓰면 이후 서비스가 고정된 객체 키에서 현재 인증서를 가져올 수 있습니다. 이전 인증서는 버전별 아카이브 디렉터리에 그대로 남습니다.

예시 버킷 구조

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

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

액세스 키 요구 사항

이 공급자에는 S3 호환 스토리지 자격 증명이 필요합니다.

필요한 권한

액세스 키는 대상 버킷에 객체를 업로드할 권한이 있어야 합니다. 최소한 다음 S3 작업이 필요합니다.

  • 대상 버킷(또는 버킷 접두사)에 대한 s3:PutObject

MinIO에서는 대상 버킷에 s3:PutObject를 허용하는 정책을 사용자에게 부여하세요.

문제 해결

증상해결 방법
연결 거부 또는 DNS 오류엔드포인트 URL이 올바른지, AutoSSL에서 도달할 수 있는지 확인합니다.
액세스 거부액세스 키에 버킷에 대한 PutObject 권한이 있는지 확인합니다.
서명 불일치공급자가 요구하는 리전 값으로 바꿔 봅니다.
사용자 지정 엔드포인트에서 버킷을 찾을 수 없음경로 스타일 강제를 켭니다(MinIO에서 흔합니다).
S3 Compatible Storage | AutoSSL