|
| 1 | +# Security Policy |
| 2 | + |
| 3 | +## Supported versions |
| 4 | + |
| 5 | +Security updates are provided for the latest stable release of `local-https`. |
| 6 | + |
| 7 | +| Version | Supported | |
| 8 | +| --- | --- | |
| 9 | +| 1.x | Yes | |
| 10 | +| Older versions | No | |
| 11 | + |
| 12 | +If you are using an older version, update before reporting a bug unless the issue also affects the latest release. |
| 13 | + |
| 14 | +## Project scope |
| 15 | + |
| 16 | +`local-https` is a local HTTPS helper for private networks. It creates a local Root CA, generates server certificates, builds PEM/PFX files, and can deploy them to supported services like Pi-hole, Technitium DNS, and Tailscale-based hostnames. |
| 17 | + |
| 18 | +This project is not a public Certificate Authority. It is not meant to provide public internet TLS, public domain validation, or managed PKI for organizations. |
| 19 | + |
| 20 | +## Security model |
| 21 | + |
| 22 | +This tool assumes: |
| 23 | + |
| 24 | +- You control the machine where `local-https` is installed. |
| 25 | +- You run it with root privileges because it writes under `/etc/ssl/servercerts`, `/usr/local/sbin`, `/var/lib/local-https`, and system service locations. |
| 26 | +- You understand that trusting `rootCA.crt` on a device allows certificates signed by this local CA to be trusted on that device. |
| 27 | +- You keep `rootCA.key`, `server.key`, `server.pfx`, and `.pfx-pass` private. |
| 28 | +- You do not expose generated private keys, PFX files, or the PFX password in logs, screenshots, issues, backups, or public repositories. |
| 29 | + |
| 30 | +If the Root CA private key is leaked, every device that trusts that CA should remove it, and you should regenerate the CA and all server certificates. |
| 31 | + |
| 32 | +## Reporting a vulnerability |
| 33 | + |
| 34 | +Please do not report security vulnerabilities in public issues. |
| 35 | + |
| 36 | +Use GitHub Private Vulnerability Reporting if it is available for this repository. |
| 37 | + |
| 38 | +If private reporting is not available, open a public issue with only a minimal message, for example: |
| 39 | + |
| 40 | +> I would like to report a security issue privately. |
| 41 | +
|
| 42 | +Do not include exploit details, secrets, keys, logs with private data, or reproduction steps in the public issue. |
| 43 | + |
| 44 | +When reporting, include: |
| 45 | + |
| 46 | +- Affected version or commit. |
| 47 | +- Operating system and distribution. |
| 48 | +- Installation method. |
| 49 | +- Clear impact. |
| 50 | +- Minimal reproduction steps. |
| 51 | +- Whether the issue exposes private keys, weakens certificate generation, changes file permissions, bypasses prompts, or affects service deployment. |
| 52 | + |
| 53 | +## What counts as a security issue |
| 54 | + |
| 55 | +Please report issues such as: |
| 56 | + |
| 57 | +- Private keys or PFX passwords being written with unsafe permissions. |
| 58 | +- Generated certificates using unsafe cryptographic parameters. |
| 59 | +- Command injection, path injection, or unsafe shell handling. |
| 60 | +- Unsafe handling of service names, hostnames, SAN values, paths, or environment variables. |
| 61 | +- Unintended exposure of `rootCA.key`, `server.key`, `server.pfx`, or `.pfx-pass`. |
| 62 | +- Auto-renew logic that weakens permissions or exposes secrets. |
| 63 | +- Installer behavior that can be abused to execute unexpected code. |
| 64 | +- Incorrect trust guidance that could put users at risk. |
| 65 | +- Service deployment behavior that exposes HTTPS files to the wrong user or group. |
| 66 | + |
| 67 | +## What is not a security issue |
| 68 | + |
| 69 | +The following are usually not security vulnerabilities in this project: |
| 70 | + |
| 71 | +- Browser warnings before you install and trust `rootCA.crt`. |
| 72 | +- Apps that ignore user-installed CAs. |
| 73 | +- A device trusting the local CA because the user manually installed it. |
| 74 | +- A public service being exposed to the internet by user configuration. |
| 75 | +- Local network access risks caused by unrelated firewall, router, or DNS settings. |
| 76 | +- Loss of local files due to user backup, sync, or permission changes outside this tool. |
| 77 | +- Problems caused by modifying generated files manually. |
| 78 | + |
| 79 | +## Sensitive data |
| 80 | + |
| 81 | +Do not share: |
| 82 | + |
| 83 | +- `rootCA.key` |
| 84 | +- `server.key` |
| 85 | +- `server.pfx` |
| 86 | +- `.pfx-pass` |
| 87 | +- Full private logs with hostnames, internal IPs, or Tailscale names unless required |
| 88 | +- Screenshots that show secrets or private infrastructure details |
| 89 | + |
| 90 | +For debugging, redact private values where possible. |
| 91 | + |
| 92 | +## Installation risk |
| 93 | + |
| 94 | +The one-line installer uses `curl` and `sudo bash`. That is convenient, but it requires trust in the repository and the network path used to download the script. |
| 95 | + |
| 96 | +For a more reviewable install flow, download the script first, inspect it, then run it manually. |
| 97 | + |
| 98 | +## Disclosure process |
| 99 | + |
| 100 | +After a valid report is received: |
| 101 | + |
| 102 | +1. The issue will be reviewed. |
| 103 | +2. If confirmed, a fix will be prepared. |
| 104 | +3. A patched release will be published when possible. |
| 105 | +4. The vulnerability may be documented after users have had a reasonable chance to update. |
| 106 | + |
| 107 | +There is currently no paid bug bounty program for this project. |
| 108 | + |
| 109 | +## Hardening recommendations for users |
| 110 | + |
| 111 | +- Keep `/etc/ssl/servercerts` readable only by root and the intended service group. |
| 112 | +- Do not add normal user accounts to the `certs` group unless they really need certificate access. |
| 113 | +- Rotate the PFX password if you think it was exposed. |
| 114 | +- Regenerate the Root CA if `rootCA.key` may have been exposed. |
| 115 | +- Remove old trusted Root CAs from devices when you reinstall or rotate the CA. |
| 116 | +- Avoid copying generated private keys to desktops, phones, chat apps, or cloud drives. |
| 117 | +- Keep the host updated with security patches. |
| 118 | +- Review systemd timers, cron entries, and service permissions after installation. |
0 commit comments