There are a few web pages that describe configuring Secure Socket Layer (SSL) for JBoss, but most gloss over some of the details.
Deep inside the guts of JBoss is an instance of another server called Tomcat, and when it comes to using SSL and HTTPS, JBoss delegates all the implementation stuff to that bundled Tomcat installation. As a result, some of the instructions for implementing SSL come directly from Tomcat documentation. For example, I used this document to start figuring out how to enable SSL.
Before starting, there are two things to ascertain:
- where JBoss is installed on your machine; and
- that there's a version of the Java Developer's Kit on the JBoss machine.
For the purposes of this write-up, we will describe setting up JBoss to use a temporary, self-signed SSL Certificate. Also, we'll assume that you're installing under Windows.
There are essentially three steps:
- create the self-signed certificate;
- move the self-signed certificate to a JBoss directory; and
- edit the Tomcat configuration file to turn on SSL.
Creating the Self-Signed Certificate
The Java Developer's Kit includes a utility to create certificates. Go to a command line and type the following:
- it creates a new key; and
- if necessary, it creates a collection of keys (called a "key store") to put the key in.
There are some prompts that look like this:
Notice that there are two prompts for the password. That's because there's one password for the keystore, and one password for the actual key.
Moving the Keystore
One of the things that the tool isn't very good about is telling you where it created that keystore. By default, the keygen tool puts information in the "Documents and Settings" directory for your userid. In the example, above, we'd find that they keystore has been created as a file called:
Update the Configuration File
First up, you should probably shut down the JBoss server as you do this step.
In the JBoss directory, there should be a file called server.xml:
- Uncomment the block
- Change the port to 443
- Change the keystore password to the password used, above ("changeit")
The end result should look something like this: