Skip to main content

Automated HTTPS certificate renewal tool for cloud services, supporting CDN and Load Balancer (multi-cloud support, currently supports Alibaba Cloud)

Project description

Cloud Certificate Renewer

Automated HTTPS certificate renewal tool for cloud services, supporting CDN and Load Balancer products. Currently supports Alibaba Cloud, with architecture designed for multi-cloud extension.

Table of Contents

Features

  • Automatic certificate renewal for cloud CDN services (currently supports Alibaba Cloud)
  • Automatic certificate renewal for cloud Load Balancer services (currently supports Alibaba Cloud SLB)
  • Certificate validation (domain matching, expiration checking)
  • Support for wildcard domain certificates
  • CLI support with arguments (--dry-run, --verbose, --version)
  • Multiple authentication methods:
    • Access Key authentication
    • STS (Security Token Service) temporary credentials
    • IAM Role authentication
    • OIDC (RRSA) authentication for Kubernetes
    • Service Account authentication
    • Environment variable authentication
  • Configuration via environment variables or Kubernetes Secrets
  • Comprehensive error handling and logging
  • Helm Chart deployment support
  • Integration with cert-manager and Reloader
  • Automated release workflow with multi-architecture Docker images, Helm Charts, and PyPI packages

Kubernetes Deployment

Prerequisites

Required:

  • Kubernetes cluster

Recommended:

  • cert-manager (for automatic certificate acquisition and renewal)
  • Reloader (for monitoring certificate Secret changes and automatically triggering Deployment redeployment)

Deployment

# 1. Create Secret (using generic naming, recommended)
kubectl create secret generic cloud-credentials \
  --from-literal=access-key-id=YOUR_KEY \
  --from-literal=access-key-secret=YOUR_SECRET

# Or use legacy naming (backward compatible)
# kubectl create secret generic alibaba-cloud-credentials \
#   --from-literal=access-key-id=YOUR_KEY \
#   --from-literal=access-key-secret=YOUR_SECRET

# 2. Deploy using Helm
helm install cloud-cert-renewer ./helm/cloud-cert-renewer \
  --set serviceType=cdn \
  --set cdn.domainName=your-domain.com

For detailed deployment instructions and troubleshooting, see:

How It Works

  1. cert-manager automatically acquires/updates Let's Encrypt certificates and updates the cert-secret Secret
  2. Reloader detects Secret changes and triggers Deployment redeployment
  3. Init container starts, reads certificate from Secret, and calls cloud service API to update certificate
  4. Init container exits after completion
  5. Main container (placeholder) keeps running to ensure Deployment status is normal

Development

For development and testing, see DEVELOPMENT.md for detailed setup instructions.

CLI Installation

Using pip (PyPI)

You can install the tool directly from PyPI:

pip install cloud-cert-renewer

After installation, you can run the tool using the cloud-cert-renewer command:

# View help
cloud-cert-renewer --help

# Run in dry-run mode
cloud-cert-renewer --dry-run --verbose

# Run with environment variables
export SERVICE_TYPE=cdn
export CLOUD_ACCESS_KEY_ID=your_key
...
cloud-cert-renewer

Documentation

Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines, including the language policy.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cloud_cert_renewer-0.2.2b1.tar.gz (207.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cloud_cert_renewer-0.2.2b1-py3-none-any.whl (45.9 kB view details)

Uploaded Python 3

File details

Details for the file cloud_cert_renewer-0.2.2b1.tar.gz.

File metadata

  • Download URL: cloud_cert_renewer-0.2.2b1.tar.gz
  • Upload date:
  • Size: 207.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for cloud_cert_renewer-0.2.2b1.tar.gz
Algorithm Hash digest
SHA256 8bc8c7f794f2ee124c71bd6d7b9c9016ec82d06b8292f7b79f36e4b9bcea2ad6
MD5 86d77ce685259fb0845e8f2a416019c6
BLAKE2b-256 8f5969ccc03c907a97fdafb0c91023761793ef675f79d22f0392c982321b30a3

See more details on using hashes here.

File details

Details for the file cloud_cert_renewer-0.2.2b1-py3-none-any.whl.

File metadata

File hashes

Hashes for cloud_cert_renewer-0.2.2b1-py3-none-any.whl
Algorithm Hash digest
SHA256 092cce099cb8b5246a92f7c321e7cfd9c30b9a0f18bc01d776d2f445e87c08c0
MD5 f6bcef1654c43c1594fc5ffa6197a2c9
BLAKE2b-256 31189aebcd78dc733d787eb6aa68dafc452a3d2d5e1fc6b87c40ea3d2bc8936b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page