Tip
Tambahkan parameter -aes256 untuk mengenkripsi private key Root CA. Langkah ini sangat penting untuk mencegah akses tidak sah jika file kunci tersebut jatuh ke tangan orang lain.
Warning
Jika lupa password Root CA, Anda tidak akan bisa lagi menandatangani (menerbitkan) sertifikat baru untuk server maupun client. Satu-satunya solusi adalah membuat Root CA dari awal.
-
Buat private key untuk Root CA:
openssl genrsa -out ca.key 4096 -
Buat sertifikat Root CA (Self-Signed):
openssl req -new -x509 -days 3650 -key ca.key -out ca.pem -
Isi data:
- Country Name:
ID - State or Province Name:
Nama Provinsi - Locality Name:
Nama Kota - Organization Name:
Nama Organisasi - Organizational Unit Name:
Nama Unit Organisasi - Common Name:
Example Root Certificate Authority - Email Address:
Alamat E-mail Root CA
- Country Name:
-
Buat private key untuk server:
openssl genrsa -out server.key 2048 -
Buat CSR (Certificate Signing Request) untuk server:
openssl req -new -key server.key -out server.csrIsi data:
- Country Name:
ID - State or Province Name:
Nama Provinsi - Locality Name:
Nama Kota - Organization Name:
Nama Organisasi - Organizational Unit Name:
Nama Unit Organisasi - Common Name:
domain/hostname server RADIUS - Email Address:
Alamat E-mail Server
Pada saat prompt ini:
A challenge password []: An optional company name []:Tekan Enter untuk mengosongkan (kedua bagian ini bersifat opsional dan tidak wajib diisi untuk keperluan sertifikat RADIUS).
- Country Name:
-
Buat file ekstensi sertifikat untuk server:
nano server.extIsi dengan:
basicConstraints = CA:FALSE keyUsage = digitalSignature, keyEncipherment extendedKeyUsage = serverAuth subjectAltName = DNS:[domain/hostname],IP:[ip]Ganti:
[domain/hostname]: domain atau hostname yang ada di server RADIUS[ip]: ip address yang ada di server RADIUS
-
Tandatangani CSR server oleh Root CA:
openssl x509 -req -in server.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out server.pem -days 365 -extfile server.ext
Note
Jika memiliki banyak client, ulangi langkah-langkah pembuatan sertifikat ini untuk setiap client secara individual agar setiap client memiliki identitasnya masing-masing.
-
Buat private key untuk client:
openssl genrsa -out client.key 2048 -
Buat CSR (Certificate Signing Request) untuk client:
openssl req -new -key client.key -out client.csrIsi data:
- Country Name:
ID - State or Province Name:
Nama Provinsi - Locality Name:
Nama Kota - Organization Name:
Nama Organisasi - Organizational Unit Name:
Nama Unit Organisasi - Common Name:
username/identitas client - Email Address:
Alamat E-mail Client
Pada saat prompt ini:
A challenge password []: An optional company name []:Tekan Enter untuk mengosongkan (kedua bagian ini bersifat opsional dan tidak wajib diisi untuk keperluan sertifikat RADIUS).
- Country Name:
-
Buat file ekstensi sertifikat untuk client:
nano client.extIsi dengan:
basicConstraints = CA:FALSE keyUsage = digitalSignature, keyEncipherment extendedKeyUsage = clientAuth -
Tandatangani CSR client oleh Root CA:
openssl x509 -req -in client.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out client.pem -days 365 -extfile client.ext
Buat format PKCS#12 untuk client (Windows/macOS/iOS/Android):
openssl pkcs12 -export -out client.p12 -inkey client.key -in client.pem -certfile ca.pem -name "Sertifikat Client"
-
Cek sertifikat Root CA:
openssl x509 -in ca.pem -text -noout -
Cek sertifikat server:
openssl x509 -in server.pem -text -noout openssl verify -CAfile ca.pem server.pem -
Cek sertifikat client:
openssl x509 -in client.pem -text -noout openssl verify -CAfile ca.pem client.pem
chmod 600 *.key
chmod 644 *.pem
Keterangan:
600: Hanya owner yang bisa read/write file644: Owner bisa read/write file, others hanya read file
Semoga bermanfaat ^_^