The (updated) Definitive EJBCA Upgrade Guide
With the release of EJBCA 7.0 and subsequent drop of support for JDK7/JEE6, we’ve updated the upgrade guide that we published back in 2017 to reflect these changes. With no further ado, here it goes:
tl;dr:
- Upgrade to EJBCA 4.0.16
- Run ant upgrade from the console
- Run ant post-upgrade from the console
- Continue below
If running EJBCA >= 4.0.16 but < 5.0.12 on JDK6 or earlier:
- Upgrade to EJBCA 6.3.2.6
- Run ant upgrade from the console
- Run ant post-upgrade from the console
- Upgrade to JDK8
- Upgrade application server to a JEE7 supporting application server
- Deploy the latest version of EJBCA
- Run ant upgrade from the console
- Run post-upgrade from the UI
- Upgrade to JDK8
- Upgrade application server to a JEE7 supporting application server
- Upgrade to latest version of EJBCA
- Run ant upgrade from the console
- Run post-upgrade from the UI
- Upgrade to latest version of EJBCA
- Run post-upgrade from the UI
Example:
A typical upgrade path:
- EJBCA 4.0.16 (on JDK6, JBoss 5.1.0.GA)
- EJBCA 6.3.2.6 (on JDK6, JBoss 5.1.0.GA)
- EJBCA 6.3.2.6 (on JDK8, WildFly 12)
- EJBCA 7.x
Concepts
The Intermediate Release: EJBCA 6.3.2.6
During EJBCA 6.8.0 we refactored the roles and access rules massively, which lead to an upgrade break when upgrading from versions of EJBCA prior to 5.0 (though upgrading via EJBCA 5.0 was still possible). As we realized that solving this issue while preserving 100% uptime requirements (see below) was impossible, as well as due to the technology jump (see the next section) and bugs that we discovered while testing upgrading from ancient installations, we created EJBCA 6.3.2.6 in order to handle all the intermediate steps. As of today EJBCA 6.3.2.6 is published and available in the Community Edition on SourceForge, and in the download area for customers.
Technology Jump – JDK6 → JDK7
Technology Jump – JEE5 → JEE6
In EJBCA 6.4.0 we decided to move on to JDK7, which means that it can no longer be deployed to application servers based on JDK6 such as JBoss versions 4 and 5. The latest version that can still run under JDK6 is EJBCA 6.3.2.6. For an upgrade path this means that you can continue running on your old JBoss 5.1.0.GA server (JEE5) up to, and including, the EJBCA 6.3.2.6 intermediate release. At this stage you must upgrade JDK and the application server to JDK8 and JBoss EAP 7 or WildFly 10.
Technology Jump – JDK7 → JDK8
Technology Jump – JEE6 → JEE7
The loss of JEE6 support means that we’ve taken the chance to upgrade persistence definition files and library schemas to JEE7 standards. This means that EJBCA will no longer render on JEE6 application servers, meaning that minimal supported AS’s are JBoss EAP7/Wildfly 10.
100% Uptime during Upgrade
Automatic Upgrade
post-upgrade from Console
When: EJBCA 6.8.0
In a similar vein, as more and more of our customers run EJBCA on the PrimeKey Appliance and thus don’t have access to the command line. As of EJBCA 6.8.0 it’s been possible to perform post-upgrades from the UI. When a post-upgrade is required, the System Upgrade option will appear in the menu:
Choosing it will bring you to a screen used to perform the post-upgrade action:
Conclusion
Cheers!
Tomas Gustavsson
CTO
Mike Agrenius Kushner
Product Owner EJBCA