Practical PKI - a hands-on workshop
The Practical PKI workshop is designed to introduce you to PKI and X.509 fundamentals, and real-world applications. There are two main application areas:
- TLS certificates for public websites and services (via ACME)
- Enterprise PKI for Linx / Unix environments (with FreeIPA)
Please give your feedback at the end of the session!
Prerequisites
The workshop is designed to make it as easy as possible to participate.
You will need a computer with an Internet access, an SSH client and a web browser. You can use any operating system—most of the exciting stuff happens on the machines in the workshop environment.
Some prior experience with Linux / Unix and using a command shell will be helpful, but it is not a strict requirement.
The smart card module has an optional remote graphical login scenario, using Remote Desktop Protocol (RDP). Suitable clients include:
- Linux:
gnome-connectionsorremmina(install via your package manager) - Mac: FreeRDP (download or
brew install freerdp) - Windows: mRemoteNG (download)
Workshop modules
The workshop activities are organised into Public PKI and Enterprise PKI sections. Within each section, you should do the modules in order.
Public PKI modules:
Enterprise PKI modules:
- Key generation and CSR creation with OpenSSL
- Service certificates with FreeIPA and Certmonger
- FreeIPA certificate profiles and user certificates
- Smart cards and workstation login
- Externally signing the FreeIPA CA
- The FreeIPA ACME server
Your unique workshop environment
You will have received a card bearing your participant number and
some access details. Your workshop environment is hosted under the
domain e$N.pki.frase.id.au (where $N is your particpant number).
Throughout the curriculum, the variable $DOMAIN refers to your
environment’s domain.
There are several machines in the environment:
server.e$N.pki.frase.id.au- the FreeIPA serverclient.e$N.pki.frase.id.au- an enrolled client machineweb.e$N.pki.frase.id.au- a web server
Environment variables
On all three machines, login shells will automatically set the
DOMAIN and REALM environment variables. For example:
export DOMAIN=e17.pki.frase.id.au
export REALM=E17.PKI.FRASE.ID.AU
You might also find it convenient to set these variables in your shell session on your local machine.
Accessing the environment
The machines in your environment can be accessed over SSH. The
unique SSH private key for your environment is available for
download here. Download your private key and provide it
to your SSH client. Then you can log into any of the machines in
your environment, using the fedora user account.
If you use OpenSSH, the login command is:
ssh -i path/to/key.pem fedora@client.e$N.pki.frase.id.au
Accept the host key prompt and log in.
Do not access or interfere with other participants’ environments!
hacker voice: I’m in.
Now that you’re here, here is some info about the machines.
- You are in the
fedorauser account - You have full
sudoaccess for performing actions asroot(when needed) - Editors:
vi(Vim) andnanoare available. The defaultEDITORisnano. - The shell is Bash version 5.3.0
tmuxis installed
FreeIPA credentials
For some workshop modules, you will access and perform administrative actions in a FreeIPA domain. The accounts and access credentials are as follows:
adminaccount: password =Secret.123user1account: password =Secret.123