Public Key Infrastructure with OpenSSL
A series of three labs building, step by step, a complete public key infrastructure
with OpenSSL: creating a certificate authority, generating real client and server certificates,
and exporting them in .p12 format for actual use in mutual authentication.
Context
Three consecutive labs from the M1 Information Security curriculum, focused on manually building a PKI with OpenSSL rather than using a managed one. The goal was to understand every step of the trust chain: key generation, certificate signing request, signing by the authority, and export into a format usable by a real application.
What was built
- Full OpenSSL configuration for the certificate authority (
ca.cnf). - Server certificate generated with its own configuration (
server.conf). - Client certificate generated with its own configuration (
client.conf). - Certificates exported in
PKCS#12 (.p12)format, directly importable into a browser or client for mutual authentication. - Three lab submissions (
TP1_HILALOGLU_Mustapha,TP2_HILALOGLU_Mustapha,TP3_M_H) documenting the progression.
Tech stack
Status
Completed and submitted. These PKI foundations were reused and extended later in the Linux hardening lab (building an in-house PKI to secure nginx over HTTPS and mTLS), see the dedicated ANSSI Linux hardening page.