Post

self-ca — Self-Hosted Certificate Authority

Generate, store, and install private HTTPS certificates on iOS, Android, Windows, Linux, and macOS.

self-ca — Self-Hosted Certificate Authority

self-ca is a self-hosted CA web service for generating and managing private HTTPS certificates — with install flows for mobile and desktop platforms.

Repository: github.com/eSlider/self-ca

Architecture

graph TB
    subgraph Browser["Browser (Vuetify CDN)"]
        FORM["CA / cert creation form"]
        DL["Platform download hub"]
        GUIDE["Inline install checklists"]
    end

    subgraph Backend["Go API + storage"]
        API["REST / JSON API"]
        CRYPTO["crypto/x509 + ECDSA"]
        STORE["Filesystem PEM tree<br/>data/cas/"]
        EXPORT["Platform exporters<br/>.crt · .mobileconfig · scripts"]
        WEB["Embedded SPA<br/>internal/web/static"]
    end

    subgraph Clients["Client devices"]
        IOS["iOS / iPadOS"]
        AND["Android"]
        WIN["Windows"]
        LIN["Linux"]
        MAC["macOS"]
    end

    FORM ---> API
    DL --> API
    WEB --> API
    API --> CRYPTO
    CRYPTO --> STORE
    STORE --> EXPORT
    EXPORT --> IOS
    EXPORT --> AND
    EXPORT --> WIN
    EXPORT --> LIN
    EXPORT --> MAC
    GUIDE --> Clients

Features

  • Web UI for certificate issuance and renewal
  • Platform-specific install helpers (iOS, Android, Windows, Linux, macOS)
  • Go CLI for automation and scripting
  • Embedded Vue 3 + Vuetify SPA — no frontend build step

Use case

Homelab stacks (Gitea, OnlyOffice, WebDAV, Matrix) often need trusted TLS on private networks. self-ca centralizes CA management instead of ad-hoc mkcert runs per machine.

Stack

LayerChoice
BackendGo 1.25+ — internal/ca, REST API, filesystem PEM store
FrontendVue 3 + Vuetify 3 via CDN
Storagedata/cas/{ca-id}/ PEM tree

Tech stack

Go · Web UI · X.509 · ECDSA · CLI · Vue 3

This post is licensed under CC BY 4.0 by the author.