Platform Installation
Platform Installation
Section titled “Platform Installation”The QCecuring SSL-CLM Platform is delivered as a unified Spring Boot application containing:
- REST API
- Web UI
- Certificate Discovery Engine
- Enrollment & Renewal Engine
- Policy & Governance Engine
- Audit Layer
- CA Integration Service
It runs as a single executable JAR.

Prerequisites
Section titled “Prerequisites”Required
Section titled “Required”- Java 21+
- MongoDB 7+
Optional (Production)
Section titled “Optional (Production)”- TLS certificates (HTTPS)
- Reverse proxy (NGINX / Load Balancer)
- SMTP server (for expiration alerts)
- Internal CA / ACME server / External CA credentials
Step 1 — Verify Java
Section titled “Step 1 — Verify Java”java -versionExpected: Java 21 or higher
Step 2 — Start Dependencies
Section titled “Step 2 — Start Dependencies”Start MongoDB
Section titled “Start MongoDB”docker run -d \ --name ssl-clm-mongo \ -p 27017:27017 \ mongo:7Step 3 — Run the Platform
Section titled “Step 3 — Run the Platform”Navigate to your JAR location:
cd installersStart the application:
java -jar ssl-clm-0.0.1-SNAPSHOT.jarYou should see:
:: Spring Boot :: (v3.x.x)No active profile set, falling back to default profile: "dev"
The application will start on:
http://localhost:8080Profiles
Section titled “Profiles”The platform supports environment-based profiles.
Development Mode (default)
Section titled “Development Mode (default)”java -jar ssl-clm.jarUses:
- Local MongoDB
- Development CA configuration
- Relaxed validation settings
Production Mode
Section titled “Production Mode”java -jar ssl-clm.jar --spring.profiles.active=prodOr using environment variable:
export SPRING_PROFILES_ACTIVE=prodjava -jar ssl-clm.jarProduction mode enables:
- Strict security policies
- CA integration enforcement
- Hardened renewal workflows
- Secure token validation
Configuration via Environment Variables
Section titled “Configuration via Environment Variables”Example .env file:
# ====================================# SSL-CLM Platform - Environment Template# ====================================
# ===============================# Spring Profile# ===============================SPRING_PROFILES_ACTIVE=prod
# ===============================# Server Configuration# ===============================SERVER_PORT=8080
# ===============================# MongoDB Configuration (REQUIRED in production)# ===============================MONGODB_URI=mongodb://localhost:27017/ssl-clm-db
# ===============================# JWT Configuration (REQUIRED in production)# ===============================JWT_SECRET=CHANGE_THIS_TO_A_LONG_RANDOM_STRINGJWT_EXPIRATION=1800000
# ===============================# CA Integration# ===============================CA_PROVIDER=internalCA_API_URL=https://ca.example.comCA_API_KEY=change_me
# ===============================# Email Configuration (Optional)# ===============================EMAIL_ENABLED=trueEMAIL_FROM=noreply@yourcompany.comEMAIL_HOST=smtp.gmail.comEMAIL_PORT=587EMAIL_USERNAME=your-email@gmail.comEMAIL_PASSWORD=your-app-password
# ===============================# SSL/TLS Configuration (Optional HTTPS)# ===============================SERVER_SSL_ENABLED=false
# ===============================# Reporting & Scheduling# ===============================REPORTING_ENABLED=trueSCHEDULING_ENABLED=true
# ===============================# Swagger / OpenAPI# ===============================SWAGGER_ENABLED=falseLaunch with:
java -jar ssl-clm.jar --spring.profiles.active=prodHealth Check
Section titled “Health Check”Verify application health:
curl http://localhost:8080/actuator/healthExpected:
{ "status": "UP"}Accessing the UI
Section titled “Accessing the UI”Once started, open:
http://localhost:8080The UI is served from the same application.

Production Deployment Pattern
Section titled “Production Deployment Pattern”Recommended:
- Run behind a reverse proxy
- Enable HTTPS
- Secure CA credentials
- Restrict MongoDB access
- Configure firewall rules
- Rotate JWT secret regularly
- Enable certificate expiration alerts
- Monitor audit logs