Skip to content

Commit f2934f4

Browse files
committed
make restore system originated agnostic
1 parent 6c74522 commit f2934f4

2 files changed

Lines changed: 7 additions & 5 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ This application provides a complete, self-hosted certificate authority (CA) man
2222
- **Certificate Revocation Lists** — Automatic CRL generation and distribution when certificates are revoked; public endpoints for external validators.
2323
- **Encrypted Storage** — Certificate private keys and sensitive data encrypted at rest; decryption only on demand.
2424
- **Audit Logging** — Track all certificate operations (creation, renewal, revocation, downloads) with user attribution, role, client IP address, and timestamps. The Recent Operations panel on the dashboard displays IP alongside each event.
25-
- **Backup & Restore** — Export and restore full backups (database + certificate storage) from the Toolbox without server restart; atomic swaps ensure consistency.
25+
- **Backup & Restore** — Export and restore full backups (database + certificate storage) from the Toolbox without server restart; atomic swaps ensure consistency; cross-platform restore supported (e.g., Windows → Linux) with matching encryption keys.
2626
- **Policy-Driven Defaults** — Enforce certificate constraints (validity periods, key algorithms, SAN validation, and root password minimum length) via centralized policy configuration.
2727

2828
### Use Cases

docs/SECURITY.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -223,8 +223,10 @@ Operators are responsible for:
223223
1. Validates ZIP integrity and structure (rejects path traversal attempts, unexpected content)
224224
2. Verifies SQLite database integrity (`PRAGMA integrity_check`)
225225
3. Confirms schema version compatibility (must match current application version)
226-
4. Performs atomic swap of database and data directory (maintains consistency)
227-
5. Preserves recovery backups during the operation
226+
4. **Rewrites paths if restoring from a different data directory** (e.g., Windows → Linux, or different environment)
227+
5. Performs atomic swap of database and data directory (maintains consistency)
228+
6. Preserves recovery backups during the operation
229+
- Cross-platform restore supported: backups can be restored to a different operating system or directory layout (e.g., Windows backup → Linux deployment) as long as encryption keys match
228230
- Can be safely run while the application is live (no manual restart required)
229231
- Upload limits: 5 GB max file size, 10 GB max uncompressed size
230232
- Error recovery:
@@ -237,8 +239,8 @@ Operators are responsible for:
237239
- Backup files contain encrypted certificate material (`*.pem.enc`, `*.p12.enc`) with AES-256-GCM encryption
238240
- Full backups should be stored in a secure location with restricted filesystem access
239241
- If storing backups off-site or in cloud storage, ensure encryption in transit and at rest
240-
- The encryption key (`PKI_ENCRYPTION_KEY`) and salt (`PKI_ENCRYPTION_SALT`) must be available to restore from backup
241-
- Test restore procedures regularly to ensure backup integrity
242+
- **Critical requirement:** The encryption key (`PKI_ENCRYPTION_KEY`) and salt (`PKI_ENCRYPTION_SALT`) must be identical between backup and restore environments; without matching keys, certificate material cannot be decrypted during restore
243+
- Test restore procedures regularly to ensure backup integrity, especially for cross-platform or cross-environment restores
242244
- Backup operations are audit-logged with the requesting user's identity
243245

244246
**Manual Backup Alternative**:

0 commit comments

Comments
 (0)