How it fits together

alpinCertificateTool architecture overview Apache alpinCertificateClient Windows IIS alpinCertificateClient nginx alpinCertificateClient d.ecs HTTP Gateway alpinCertificateClient d.3 Presentation Server alpinCertificateClient Apache Tomcat alpinCertificateClient d.3one Configuration Dashboard HTTPS + API key alpinCertificateTool REST API platform (cloud) Encrypted storage • Client / CA account credentials • Domain certificates & key pairs secured with your zero-knowledge key Connector modules ACME clients • DNS provider APIs Renewal & audit Expiry monitoring & automatic renewal shared encrypted storage alpin-cert-tool d.3one app d.3one integration app (cloud) • Account, domain & certificate audit log • Generate, view & destroy user keypairs ACME protocol DNS API Certificate Authorities Let's Encrypt — Production Let's Encrypt — Staging (more CAs planned) DNS Providers AWS Route 53 Cloudflare DNS (used for automatic DNS-01 / DNS-HOSTED-01 authorization)
Servers run the lightweight alpinCertificateClient updater script, which talks to the alpinCertificateTool REST API. The platform keeps an encrypted store of credentials and certificates, and connects out to the Certificate Authorities and, where automatic DNS authorization is used, to DNS provider APIs. A separate cloud app, alpin-cert-tool d.3one app, shares that same encrypted storage and is reachable only from the d.3one Configuration Dashboard, for audit-log inspection and user keypair management.

Every server that needs an SSL certificate runs one small updater script, alpinCertificateClient. That script talks to the alpinCertificateTool REST API, hosted in our cloud environment. The platform holds a securely encrypted store of client credentials and certificates, and it bundles the entire software stack needed to talk to Certificate Authorities — currently Let's Encrypt, in both its production and sandbox (staging) environments — as well as connectors to DNS provider APIs, currently AWS Route 53 and Cloudflare DNS, used to automatically satisfy DNS-based domain authorization.

You also get access to the alpin-cert-tool d.3one app from your d.3one Configuration Dashboard. It shares the same encrypted storage as the main platform, and lets you inspect the audit logs for your accounts, domains, and certificates, and create, display, or destroy your user keypairs.

The zero-knowledge approach

alpinCertificateTool follows a zero-knowledge security model: every piece of sensitive information stored on our platform — user account private and public keys, and certificate private and public keys — is encrypted with a security key that we never know and never store anywhere. Only the client, using alpinCertificateClient, chooses that key and passes it along with each call.

This means we can guarantee that nobody — not even us — can issue or renew certificates on your behalf. Only you, knowing your own security key, can do that. The one and only responsibility this places on you is safekeeping that key. Losing it is equivalent to losing every Certificate Authority account and certificate you've issued through the platform: you would need to create new accounts and new certificates under a new key.

Why this matters for you

Because of this model, you never have to do the heavy lifting normally involved in SSL certificate management:

All of this is handled transparently by the alpinCertificateTool platform.

Authorizing certificate issuance

Before a Certificate Authority issues a certificate, it needs proof that you actually control the domain the certificate is for. The ACME protocol supports several ways to prove this, and alpinCertificateTool supports the following:

The end-to-end workflow

  1. Get API access. You receive an API account and key for the alpinCertificateTool platform when you subscribe to the service.
  2. Install the client. Deploy alpinCertificateClient on every server where certificates should be managed and installed automatically.
  3. Choose your zero-knowledge key. Generate and securely store the private security key described above — only you know it, and you pass it on every call.
  4. Create a Certificate Authority account. Using the client, register an account with one or more Certificate Authorities; we handle key generation and encryption under your zero-knowledge key.
  5. Issue or renew certificates. Using the client, request a new or renewed certificate; we generate and protect its key pair, and return the valid certificate to the client that requested it.
  6. Install it. The client installs the certificate on your target systems — Apache, nginx, IIS, the Windows certificate store, or d.velop application components.

Installing certificates on your systems

To make step 6 painless, alpinCertificateClient ships with:

See the Client Documentation page for the full configuration reference and use cases.