Claude Code

SSLWebsites + Claude Code

Add SSL certificate management to your Claude Code workflow. 30 seconds.

Claude Code Cursor Cline Windsurf Aider
Quick Reference Create cert → POST /api/v1/certificates
Check status → GET /api/v1/certificates/:id
Renew → POST /api/v1/certificates/:id/renew
Revoke → POST /api/v1/certificates/:id/revoke
Download → GET /api/v1/certificates/:id/download

Step 1: Get your API key

Add to your project's .env file:

SSLWEBSITES_BASE_URL=https://sslwebsites.com
SSLWEBSITES_API_KEY=ssl_free_your_key_here

No key yet? Sign up free via API ($1 one-time activation required). Your human gets an email with the payment link:

curl -X POST https://sslwebsites.com/api/signup \
  -H "Content-Type: application/json" \
  -d '{"tenantId":"my-project","name":"My Project","email":"you@example.com"}'

Step 2: Add to CLAUDE.md

Copy this into your project's CLAUDE.md file. Claude Code reads it at session start and gains full SSLWebsites integration:

IMPORTANT: Every API call requires Authorization: Bearer $SSLWEBSITES_API_KEY header. Without it you will get 401. No exceptions.
# SSLWebsites Integration

This project uses SSLWebsites.com for SSL certificate management.
API base: ${SSLWEBSITES_BASE_URL}. Auth: Bearer ${SSLWEBSITES_API_KEY}.
EVERY request MUST include: -H "Authorization: Bearer ${SSLWEBSITES_API_KEY}" -H "Content-Type: application/json"

## Get your API key
POST /api/signup with: { tenantId (optional), name, email (optional) }
Returns: apiKey (ssl_free_...), tenantId, plan limits
Note: $1 payment required to activate key (anti-spam gate)

## Certificate lifecycle
POST /api/v1/certificates — Create cert { domains: ["example.com"], validationType: "http"|"dns"|"email", autoRenew: true }
GET /api/v1/certificates — List certs (?status=active|pending|expired&domain=example.com)
GET /api/v1/certificates/:id — Full cert detail (status, expiry, domains, validation info)
POST /api/v1/certificates/:id/renew — Renew before expiry
POST /api/v1/certificates/:id/revoke — Revoke (irreversible)
DELETE /api/v1/certificates/:id — Delete cert record
GET /api/v1/certificates/:id/download — Download ZIP (certificate.crt, private.key, ca_bundle.crt)
GET /api/v1/certificates/:id/install-guide/:serverType — Install guide (apache|nginx|iis|cpanel|plesk|tomcat|aws|cloudflare|heroku)

## Validation
- HTTP-01: Place challenge file, auto-verified
- DNS-01: Add TXT record (required for wildcards)
- Email: Verification sent to domain admin
- CNAME: Add CNAME record

## Certificate types
- Single domain: example.com (all plans)
- Wildcard: *.example.com (Premium+ plans, DNS validation only)
- Multi-domain SAN: up to 100 domains per cert (Basic+ plans)
- 90-day validity (all plans)
- 1-year validity (Basic+ plans)

## Plans
Free: 3 certs (90-day), ACME only, $1 activation
Basic ($12.99/mo): Unlimited 90-day, 3x 1-year, REST API, monitoring
Premium ($69.99/mo): + wildcards, 10x 1-year, technical support
Business ($139.99/mo): + 25x 1-year, 3x wildcard, preferred support
Platinum ($219.99/mo): Unlimited everything, 100 SANs/cert, priority support

## Key patterns
- Certificate status: pending → validating → active → expired (or revoked)
- Auto-renewal: enabled on paid plans, runs before expiry
- Download bundle: ZIP with .crt, .key, .ca-bundle files
- Install guides: copy-paste config for 9 server types
- ACME: /acme endpoint, compatible with Certbot

Step 3: Create a certificate

Claude Code now understands SSLWebsites. Try natural language or use the API directly:

  1. "Create an SSL certificate for example.com with HTTP validation"
  2. "What certificates do we have?"
  3. "Download the cert bundle for cert_abc123"
curl -X POST $SSLWEBSITES_BASE_URL/api/v1/certificates \
  -H "Authorization: Bearer $SSLWEBSITES_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "domains": ["example.com", "www.example.com"],
    "validationType": "http",
    "autoRenew": true
  }'

# Response: {"id":"cert_abc123","status":"pending","domains":["example.com","www.example.com"]}

Step 4: Validate and download

Check your certificate status, then download the bundle once it's active:

# Check certificate status
curl $SSLWEBSITES_BASE_URL/api/v1/certificates/cert_abc123 \
  -H "Authorization: Bearer $SSLWEBSITES_API_KEY"

# Response: {"id":"cert_abc123","status":"active","domains":["example.com"],
#   "expiresAt":"2026-08-11T00:00:00Z","autoRenew":true}

# Download certificate bundle (ZIP: certificate.crt, private.key, ca_bundle.crt)
curl $SSLWEBSITES_BASE_URL/api/v1/certificates/cert_abc123/download \
  -H "Authorization: Bearer $SSLWEBSITES_API_KEY" \
  -o certificate-bundle.zip

# Get install guide for your server
curl $SSLWEBSITES_BASE_URL/api/v1/certificates/cert_abc123/install-guide/nginx \
  -H "Authorization: Bearer $SSLWEBSITES_API_KEY"

Step 5: Renew and revoke

# Renew a certificate before expiry
curl -X POST $SSLWEBSITES_BASE_URL/api/v1/certificates/cert_abc123/renew \
  -H "Authorization: Bearer $SSLWEBSITES_API_KEY"

# Response: {"id":"cert_abc123","status":"pending","message":"Renewal initiated"}

# Revoke a certificate (irreversible)
curl -X POST $SSLWEBSITES_BASE_URL/api/v1/certificates/cert_abc123/revoke \
  -H "Authorization: Bearer $SSLWEBSITES_API_KEY"

# Response: {"id":"cert_abc123","status":"revoked"}

# List all certificates
curl "$SSLWEBSITES_BASE_URL/api/v1/certificates?status=active" \
  -H "Authorization: Bearer $SSLWEBSITES_API_KEY"

# Delete a certificate record
curl -X DELETE $SSLWEBSITES_BASE_URL/api/v1/certificates/cert_abc123 \
  -H "Authorization: Bearer $SSLWEBSITES_API_KEY"

Plan limits

Every project starts on the free tier. Paid plans increase all limits.

Plan Price 90-Day Certs 1-Year Wildcards API Access
Free $0 ($1 activation) 3 No No ACME only
Basic $12.99/mo Unlimited 3 No Yes
Premium $69.99/mo Unlimited 10 Yes Yes
Business $139.99/mo Unlimited 25 Yes Yes
Platinum $219.99/mo Unlimited Unlimited Yes Yes

Full references