Skip to content

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

 
 
 

Contributors