Skip to content

πŸ” Enterprise-grade EJBCA PKI installation laboratory featuring three deployment methods: manual installation on Ubuntu with MariaDB & SoftHSM2, containerized deployment with Docker/Podman, and automated cloud infrastructure on Google Cloud Platform using Terraform. Includes complete documentation, configuration files, and troubleshooting guides.

Notifications You must be signed in to change notification settings

sapsan14/ejbca-lab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

EJBCA Installation Lab

A comprehensive laboratory project for installing and deploying EJBCA (Enterprise JavaBeans Certificate Authority) using various methods and deployment scenarios.

πŸ“‹ Overview

This lab provides step-by-step instructions and configurations for deploying EJBCA, a full-featured PKI (Public Key Infrastructure) solution, using multiple installation methods:

  • πŸ–₯️ Manual Installation - Traditional installation on Ubuntu with MariaDB and SoftHSM
  • 🐳 Container Deployment - Docker/Podman-based deployment with docker-compose
  • ☁️ Cloud Deployment - Automated deployment on Google Cloud Platform using Terraform

🎯 What is EJBCA?

EJBCA is an enterprise-grade Certificate Authority (CA) software that provides:

  • Certificate lifecycle management
  • Multiple certificate profiles (SSL/TLS, code signing, S/MIME, etc.)
  • Support for Hardware Security Modules (HSM)
  • Web-based administration interface
  • REST API for automation
  • eIDAS compliance support

πŸ“š Installation Methods

1. Manual Installation

Location: manual-installation/

Complete manual installation guide for EJBCA 9.2.0 on Ubuntu with:

  • OpenJDK 17
  • WildFly 35.0.1.Final
  • MariaDB 10.11
  • SoftHSM2 for hardware token simulation

Best for: Learning the installation process, custom configurations, production deployments

β†’ View Manual Installation Guide

2. Container Deployment (Docker/Podman)

Location: docker-podman/

Quick deployment using containers with docker-compose:

  • MariaDB 10.11 database container
  • EJBCA Community Edition container
  • Automatic health checks
  • Persistent data volumes

Best for: Development, testing, quick deployments, local labs

β†’ View Container Deployment Guide

3. Cloud Deployment (Google Cloud Platform)

Location: terraform-lab/

Automated infrastructure deployment on GCP using Terraform:

  • VM instance with automatic setup
  • Static IP reservation
  • Firewall rules configuration
  • Optional reverse proxy with Caddy
  • Support for both EJBCA and Smallstep CA

Best for: Cloud deployments, scalable infrastructure, infrastructure as code

β†’ View Terraform Deployment Guide

πŸš€ Quick Start

Prerequisites

  • For Manual Installation: Ubuntu 22.04+, root/sudo access
  • For Container Deployment: Docker or Podman, docker-compose
  • For Cloud Deployment: Google Cloud account, Terraform, gcloud CLI

Choose Your Method

  1. Quick local testing: Use Container Deployment
  2. Learning EJBCA internals: Use Manual Installation
  3. Production-like cloud setup: Use Terraform Deployment

πŸ“– Version Information

  • EJBCA Version: 9.2.0 (EE with eIDAS support)
  • WildFly Version: 35.0.1.Final
  • Java Version: OpenJDK 17
  • Database: MariaDB 10.11
  • Container Image: primekey/ejbca-ce:latest

πŸ” Security Notes

⚠️ Important Security Considerations:

  • All default passwords in this lab are for testing purposes only
  • Change all default credentials before deploying to production
  • Use strong passwords for database and EJBCA admin accounts
  • Configure firewall rules appropriately
  • Consider using HSM for production deployments
  • Regularly update EJBCA and dependencies

πŸ“ Project Structure

ejbca-lab/
β”œβ”€β”€ README.md                    # This file
β”œβ”€β”€ manual-installation/         # Manual installation guide
β”‚   └── README.md
β”œβ”€β”€ docker-podman/              # Container deployment
β”‚   β”œβ”€β”€ README.md
β”‚   └── docker-compose.yml
└── terraform-lab/              # GCP Terraform deployment
    β”œβ”€β”€ README.md
    β”œβ”€β”€ main.tf
    β”œβ”€β”€ variables.tf
    β”œβ”€β”€ outputs.tf
    └── startup.sh

πŸ§ͺ Testing & Verification

After installation, verify EJBCA is running:

# Check web interface
curl -k https://localhost:8443/ejbca/publicweb/healthcheck/ejbcahealth

# Access admin web interface
# https://localhost:8443/ejbca/adminweb

πŸ“š Additional Resources

🀝 Contributing

Feel free to improve this lab by:

  • Adding more deployment methods
  • Documenting additional configurations
  • Fixing issues or improving documentation
  • Adding troubleshooting guides

πŸ“ License

This lab is provided for educational and testing purposes. EJBCA has its own licensing terms. Please refer to the official EJBCA documentation for licensing information.

⚠️ Disclaimer

This lab is intended for educational and testing purposes. For production deployments, please:

  • Review security best practices
  • Use appropriate hardware and resources
  • Follow EJBCA production deployment guidelines
  • Consult with security professionals

Happy PKI Building! πŸ”

About

πŸ” Enterprise-grade EJBCA PKI installation laboratory featuring three deployment methods: manual installation on Ubuntu with MariaDB & SoftHSM2, containerized deployment with Docker/Podman, and automated cloud infrastructure on Google Cloud Platform using Terraform. Includes complete documentation, configuration files, and troubleshooting guides.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published