This library allows you to use any S3-compatible provider as key/certificate storage backend for your Certmagic-enabled HTTPS server. To protect your keys from unwanted attention, client-side encryption is possible using the secretbox package.
endpoint
: Custom endpoint URL (optional)host
: Deprecated - Useendpoint
instead.insecure
: Skip TLS certificate verification (optional, defaults tofalse
)bucket
: S3 bucket name (required, no default value)region
: AWS region (optional, defaults tous-east-1
)access_key
: AWS access key (optional)secret_key
: AWS secret key (optional)profile
: AWS profile name (optional)role_arn
: IAM role ARN for role assumption (optional)prefix
: Object key prefix (defaults to "acme")encryption_key
: 32-byte encryption key for client-side encryption (optional, if not set, then files will be plaintext in object storage)use_path_style
: Force path-style URLs (optional, enforced astrue
when a custom endpoint is used)
If both host
and endpoint
are specified, an error is reported.
Any service must support the following:
- v4 Signatures
- Basic S3 operations:
- GetObject
- PutObject
- DeleteObject
- HeadObject
- ListObjectsV2
{
storage s3 {
bucket "my-certificates"
region "us-west-2"
access_key "AKIAEXAMPLE"
secret_key "EXAMPLE"
prefix "caddy-certs"
encryption_key "your-32-byte-encryption-key-here"
}
}
{
storage s3 {
endpoint "https://minio.example.com"
bucket "my-certificates"
region "us-east-1"
access_key "minioadmin"
secret_key "minioadmin"
prefix "caddy-certs"
}
}
This project was forked from @thomersch's wonderful Certmagic Storage Backend for Generic S3 Providers repository.
This project is licensed under Apache 2.0, an open source license.