Listing Thumbnail

    Step-ca - Hardened Private Certificate Authority

     Info
    Sold by: Lynxroute 
    Deployed on AWS
    Free Trial
    This product has charges associated with it for hardening, security configuration, and support. step-ca is a private online certificate authority and ACME server, shipped as a single statically linked Go binary over an embedded key-value store with no external database. This Lynxroute build is hardened and ready out of the box: the root and intermediate CA keys are generated on your own instance at first launch and never baked into the image, the token provisioner is locked with a 24-character random password unique to the instance, ACME-issued certificates are capped at 24 hours, no plaintext listener and no management API are exposed, UFW firewall pre-configured, and a CIS Level 1 hardened Ubuntu 24.04 LTS base. Apache-2.0 license - fully auditable, no vendor lock-in.

    Overview

    This is a repackaged software product wherein additional charges apply for hardening, security configuration, and support.

    WHAT IS STEP-CA

    step-ca is a private online certificate authority from Smallstep, shipped here as a single statically linked Go binary. It issues short-lived X.509 certificates for internal services over its own REST API and over ACME, so any standard ACME client works against it, including Certbot, acme.sh, lego, Caddy, Traefik and cert-manager. It supports token-based issuance through a JWK provisioner, certificate renewal over mutual TLS, and revocation. All state - issued certificates and ACME accounts - persists in an embedded Badger key-value store on the instance, so there is no database server to run, patch or back up separately. Public certificate authorities will not issue for internal host names or private IP addresses; running your own means real TLS on internal services, on names and lifetimes you choose, with the root key under your control. Apache-2.0 license, no vendor lock-in.

    WHAT THIS AMI ADDS

    Security hardening:

    • Root and intermediate CA keys, and the passwords protecting them, are generated on your own instance at first launch - nothing is baked into the image, so no two deployments share a certificate authority
    • Token-based issuance is gated by a 24-character random password generated per instance
    • Certificates issued over ACME are capped at a 24 hour lifetime, which keeps renewal automated and limits exposure
    • Remote provisioner management is switched off, so no management API is served
    • No plaintext listener is configured; TLS 1.2 is the floor and renegotiation is disabled
    • The service runs as a dedicated non-root user under a read-only filesystem namespace, with writes limited to its database and log, and only the single capability it needs to bind port 443
    • The generated root certificate is installed into the instance trust store, so local tooling trusts the new CA immediately
    • UFW firewall pre-configured - inbound limited to SSH on 22 and the CA API on 443
    • fail2ban and AppArmor pre-configured
    • CVE scan - every image is scanned for vulnerabilities before release

    OS hardening (CIS Level 1):

    • CIS Ubuntu 24.04 LTS Level 1 benchmark applied via ansible-lockdown
    • auditd, SSH hardening, Kernel hardening, IMDSv2 enforced

    Compliance artifacts:

    • SBOM - CycloneDX 1.6 at /etc/lynxroute/sbom.json
    • CIS Conformance Report at /etc/lynxroute/cis-report.html
    • CIS Tailored Profile at /usr/share/doc/lynxroute/CIS_TAILORED_PROFILE.md

    IMPORTANT - HOW ACME ACCESS IS CONTROLLED

    Certificate requests through the token provisioner always require the provisioner password. Certificate requests through ACME are not individually authenticated: anything that can reach port 443 on this instance can be issued a certificate by this CA. Restrict inbound 443 to the networks allowed to enrol, or remove the ACME provisioner with the single command given in the credentials file on the instance.

    Highlights

    • step-ca security baked in: root and intermediate CA keys generated on your own instance at first launch and never baked into the image, token issuance gated by a 24-character random password unique to the instance, ACME certificates capped at a 24 hour lifetime, no plaintext listener and no management API exposed, UFW firewall pre-configured.
    • CIS Level 1 hardened Ubuntu 24.04 LTS: auditd, fail2ban, AppArmor, SSH key-only, IMDSv2 enforced. CVE-scanned before every release. SBOM (CycloneDX) and CIS Conformance Report included.
    • Real TLS on internal names: issue certificates for internal host names and private IP addresses that public CAs will not sign, automated through ACME with any standard client. Apache-2.0 license - fully auditable, no vendor lock-in.

    Details

    Delivery method

    Delivery option
    64-bit (x86) Amazon Machine Image (AMI)

    Latest version

    Operating system
    Ubuntu 24.04

    Deployed on AWS
    New

    Introducing multi-product solutions

    You can now purchase comprehensive solutions tailored to use cases and industries.

    Multi-product solutions

    Features and programs

    Financing for AWS Marketplace purchases

    AWS Marketplace now accepts line of credit payments through the PNC Vendor Finance program. This program is available to select AWS customers in the US, excluding NV, NC, ND, TN, & VT.
    Financing for AWS Marketplace purchases

    Pricing

    Free trial

    Try this product free for 5 days according to the free trial terms set by the vendor. Usage-based pricing is in effect for usage beyond the free trial terms. Your free trial gets automatically converted to a paid subscription when the trial ends, but may be canceled any time before that.

    Step-ca - Hardened Private Certificate Authority

     Info
    Pricing is based on actual usage, with charges varying according to how much you consume. Subscriptions have no end date and may be canceled any time.
    Additional AWS infrastructure costs may apply. Use the AWS Pricing Calculator  to estimate your infrastructure costs.

    Usage costs (5)

     Info
    Dimension
    Cost/hour
    t3.small
    Recommended
    $0.03
    t3.large
    $0.05
    t3.medium
    $0.05
    m6i.xlarge
    $0.05
    m6i.large
    $0.05

    Vendor refund policy

    We do not offer refunds for this product. AWS infrastructure charges (EC2, EBS, data transfer) are billed separately by AWS and are not refundable by us.

    How can we make this page better?

    Tell us how we can improve this page, or report an issue with this product.
    Tell us how we can improve this page, or report an issue with this product.

    Legal

    Vendor terms and conditions

    Upon subscribing to this product, you must acknowledge and agree to the terms and conditions outlined in the vendor's End User License Agreement (EULA) .

    Content disclaimer

    Vendors are responsible for their product descriptions and other product content. AWS does not warrant that vendors' product descriptions or other product content are accurate, complete, reliable, current, or error-free.

    Usage information

     Info

    Delivery details

    64-bit (x86) Amazon Machine Image (AMI)

    Amazon Machine Image (AMI)

    An AMI is a virtual image that provides the information required to launch an instance. Amazon EC2 (Elastic Compute Cloud) instances are virtual servers on which you can run your applications and workloads, offering varying combinations of CPU, memory, storage, and networking resources. You can launch as many instances from as many different AMIs as you need.

    Version release notes

    step-ca 0.30.2 - Initial release (August 2026)

    • step-ca 0.30.2 on Ubuntu 24.04 LTS, with the step CLI 0.30.6 included
    • CIS Level 1 hardening applied (ansible-lockdown/UBUNTU24-CIS)
    • CVE-scanned before every release
    • Root and intermediate CA keys generated on the instance at first launch, never baked into the image
    • Token provisioner gated by a 24-character random password unique to the instance
    • ACME provisioner enabled, issued certificates capped at a 24 hour lifetime
    • No plaintext listener and no management API exposed; TLS 1.2 floor, renegotiation disabled
    • Service runs as a dedicated non-root user with a read-only filesystem namespace
    • UFW firewall pre-configured (ports 22, 443 only)
    • fail2ban, auditd, AppArmor pre-configured
    • SBOM (CycloneDX 1.6) at /etc/lynxroute/sbom.json
    • CIS Conformance Report (OpenSCAP) at /etc/lynxroute/cis-report.html
    • IMDSv2 enforced

    Additional details

    Usage instructions

    1. Launch instance (t3.small recommended)
    2. Open Security Group - allow TCP 443 from the networks that are allowed to request certificates, and TCP 22 from your IP
    3. SSH: ssh -i key.pem ubuntu@<PUBLIC_IP>
    4. Read credentials: sudo cat /root/step-ca-credentials.txt
    5. Note the CA URL, the root fingerprint, the provisioner password and the ACME directory URL from that file
    6. On a client machine, install the step CLI and pin this CA by its fingerprint: step ca bootstrap --ca-url https://<PUBLIC_IP> --fingerprint <the fingerprint from the credentials file> --install
    7. Issue a certificate: step ca certificate myservice.internal myservice.crt myservice.key You will be prompted for the provisioner password.
    8. Or point any ACME client at the directory URL, for example: certbot certonly --standalone --server https://<PUBLIC_IP>/acme/acme/directory -d myservice.internal

    The CA presents its own certificate, issued by its own intermediate, so clients establish trust by pinning the root fingerprint in step 6 rather than by a public trust store. That is expected for a private CA.

    Certificate requests through the token provisioner require the provisioner password. Certificate requests through ACME are not individually authenticated - anything that can reach port 443 can be issued a certificate. Restrict inbound 443 accordingly, or remove the ACME provisioner using the command in the credentials file.

    Certificates default to a 24 hour lifetime; renew with step ca renew before expiry, or let your ACME client handle it.

    All credentials are saved to /root/step-ca-credentials.txt at first launch. Move them into your secret manager and delete the file before production use. For the strongest posture, copy /etc/step-ca/secrets/root_ca_key to offline storage and delete it from the instance - the CA signs with the intermediate key and does not need the root online.

    Resources

    Vendor resources

    Support

    Vendor support

    Visit us online: https://lynxroute.com 

    For step-ca documentation:

    AWS infrastructure support

    AWS Support is a one-on-one, fast-response support channel that is staffed 24x7x365 with experienced and technical support engineers. The service helps customers of all sizes and technical abilities to successfully utilize the products and features provided by Amazon Web Services.

    Similar products

    Customer reviews

    Ratings and reviews

     Info
    0 ratings
    5 star
    4 star
    3 star
    2 star
    1 star
    0%
    0%
    0%
    0%
    0%
    0 reviews
    No customer reviews yet
    Be the first to review this product . We've partnered with PeerSpot to gather customer feedback. You can share your experience by writing or recording a review, or scheduling a call with a PeerSpot analyst.