PKI (Public Key Infrastructure) adalah implementasi teknik kriptografi untuk mengamankan data dan memastikan keaslian pengirimnya. Tutorial ini menjelaskan langkah-langkah membuat sistem PKI lokal dengan membuat sertifikat digital untuk localhost dan vhosts menggunakan openSSL.
2. APA ITU PKI ?
(PKI) Public Key Infrastructure : adalah sebuah cara untuk otentikasi,
pengaman data dan perangkat anti sangkal. Secara teknis, PKI adalah
implementasi dari berbagai pengamanan teknik kriptografi yang
bertujuan untuk mengamankan data,memastikan keaslian data maupun
pengirimnya dan mencegah penyangkalan.
Komponen-komponen PKI antara lain: - Subscriber, - Certification
Authority (CA), - Registration Authority (RA), - Sertifikat Digital.
Secara praktis wujud PKI adalah penggunaan sertifikat digital.Sertifikat
digital adalah sebuah file komputer yang berisi data-data tentang sebuah
public key, pemiliknya (subscriber atau CA), CA yang menerbitkannya
dan masa berlakunya.
3. Tutorial membuat sistem PKI dalam Localhost
1. Persiapan
untuk membuat semua langkah pada sistem keamanan PKI, kita harus
mempersiapkan bahan-bahannya. Berikut bahan yang harus di siapkan :
• Install Xampp
berguna membantu untuk menjalankan sistem localhost.
• Aplikasi mozila,chrom,opera dll.
untuk membantu melihat hasil setelah kita membuat keamanan tersebut.
2. Membuat vhosts
Kita akan banyak bekerja dengan CMD (command prompt) dalam melakukan langkah
ini sampai selesai.
• Jalankan CMD sebagai administrator.
• Ketikan cd drivers/etc :untuk masuk kedalam folder etc.
• Ketikan notepad hosts :untuk membuka berkas hosts dalam format txt.
4.
5. • Tambahkan nama hosts anda yang biasanya dibuat seperti nama domain. Liat
gambar dibawah saya mencontohkan dengan nama : 1. seli.com
• Setelah selesai di edit jangan lupa di save, bisa anda tekan Cntl+S atau pilih
File>Save.
6. • Setelah selesai file yang telah anda edit tadi bisa anda keluarkan, dan selanjutnya
kita coba ping untuk melihat apakah hosts baru yang kita buat tadi berhasil atau
gagal. Disini saya contohkan dengan : ping seli.com
• Selanjutnya masuk ke folder xampp>apache>conf dan selanjutnya buka file
httpd.conf.
8. • Langkah selanjutnya buat folder baru didalam folder xampp>apache>conf
• Rename folder dengan nama sites-enabled, cara merename folder bisa dengan cara
klik folder tekan F2 atau klik kanan pada folder>rename
• Setelah selesai buka folder yang telah kita buat barusan.
9. • Buka aplikasi notepad++. Jika tidak ada anda bisa gunakan notepad
biasa, Lalu isi atau koding seperti kodingan pada gambar dibawah ini.
• Selanjutnya save dengan nama hosts yang kita buat pada langkah pertama, dengan
ditambah .conf(wajib ditambah) pada akhir nama, sebagai format file yang kita buat.
• Setelah langkah diatas dilakukan, selanjutnya kembali ke dalam folder xampp. Jadi kita
tidak lagi didalam folder xampp>apache>conf. Tetapi Sekarang kita hanya berada pada
folder xampp.
• Pada folder xampp kita buat folder baru dengan nama vhosts.
aaa
10. • Didalam folder vhosts yang kita buat tadi, kita buat folder baru lagi dengan nama
hosts yang kita buat pada langkah pertama tadi.
• Setelah selesai membuat dan merename folder, silahkan masuk kedalam folder
tersebut
11. • Didalam folder yang barusan kita buat tadi, selanjutnya buat lagi 2 folder baru
dengan nama logs dan public.
• Silahkan isi folder public dengan apllikasi web yang anda buat atau wibsite
yang anda buat.
12. UJI COBA
• Untuk melihat hasilnya, langkah pertama adalah start Apache dan MySQL (jika
anda menggunakan database) pada xampp anda.
13. • Buka Mozilla Firefox jika tidak ada bisa anda gunakan aplikasi yang sejenis.
• Ketikan nama hosts yang anda buat tadi, yang saya contohkan adalah : seli.com
lihat gambar dibawah ini
• Dan enter atau klik tanda panah sebelah kanan nama hosts anda dan langsung ke
hasil.
14. MEMBUAT DAN MENGGANTI SSL
XAMPP DENGAN SERTIFIKAT SENDIRI
1. Persiapan Setelah selesai membuat vhosts silahkan lanjutkan pada tahap ini,
kita masih bekerja dengan cmd (command prompt), untuk menyiapkan folder-
folder dan file-file yang kita butuhkan. Langkahnya antara lain :
• Cd atau cd /
printah tersebut berfungsi untuk kembali pada drive C atau untuk kita hanya
berada pada drive C saja.
15. • Mkdir sslcert
perintah tersebut berfungsi dan digunakan untuk membuat folder sslcert
didalam drive C
• Cd /sslcert
setelah membuat folder sslcert diatas, selanjutnya kita masuk kedalam folder
tersebut dengan cara ketikan : cd /nama_folder contoh :cd /sslcert
16. • Mkdir certs private
perintah tersebut digunakan untuk membuat 2 buah folder, folder 1 dengan
nama certs dan folder ke2 dengan nama private.
• Echo 100001 >serial
ketikan perintah diatas setelah selesai anda membuat folder certs dan private.
Perintah tersebut berfungsi untuk membuat sebuah berkas yang bernama serial
dengan isinya adalah 100001.
17. • Copy con serial enter
setelah anda ketikan perintah copy con serial dan dienter, lalu ketikan lagi
perintah 100001 enter. sebagai isi dari berkas kita untuk di copy.
Jika muncul
Overwrite serial? (Yes/No/All): All
ketikan All enter, selanjutnya tekan cntrl+z lalu enter, untuk menyelesaikan printah.
Lihat gambar :
18. • Notepad certindex.txt
perintah tersebut digunakan untuk membuat file certindex.txt.
Jika muncul pertanyaan seperti gambar di bawah ini, silahkan pilih yes
• Notepad openssl.cnf
perintah ini sama dengan printah di atas hanya saja file ini bernama openssl.cnf
19. Jika muncul lagi pertanyaan seperti pada perintah notepad certindex.txt maka pilihlah yes,
dan selanjutnya isi file notepad openssl.cnf dengan kodingan berikut :
#
# OpenSSL configuration file.
#
# Establish working directory.
• dir = .
• [ ca ]
• default_ca = CA_default
•
• [ CA_default ]
• serial = $dir/serial
• database = $dir/certindex.txt
• new_certs_dir = $dir/certs
• certificate = $dir/cacert.pem
• private_key = $dir/private/cakey.pem
• default_days = 3650
21. [ req_distinguished_name ]
# Variable name Prompt string
#------------------------- ----------------------------------
0.organizationName = Organization Name (company)
organizationalUnitName = Organizational Unit Name (department, division)
emailAddress = Email Address
emailAddress_max = 40
localityName = Locality Name (city, district)
stateOrProvinceName = State or Province Name (full name)
countryName = Country Name (2 letter code)
countryName_min = 2
countryName_max = 2
commonName = Common Name (hostname.com, IP, or your name)
commonName_max = 64
# Default values for the above, for consistency and less typing.
# Variable name Value
#------------------------ ------------------------------
0.organizationName_default = Universitas Islam Negeri Sultan Syarif Kasim
localityName_default = Pekanbaru
stateOrProvinceName_default = Riau
countryName_default = ID
22. [ v3_ca ]
basicConstraints = CA:TRUE
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer:always
[ v3_req ]
basicConstraints = CA:FALSE
subjectKeyIdentifier = hash
selesai codingan dibawah ini di copy, selanjutnya di save.
25. MEMBUAT SERTIFIKAT LOCALHOST
• Ketikan perintah dibawah ini untuk membuat sertifikat localhost anda :
Jika xampp anda berada di drive C : liat gambar
D:xamppapachebinopenssl req -new -nodes -out localhost-req.pem -keyout
private/localhost-key.pem -config ./openssl.cnf (enter)
26. • Lalu isi seperti yang saya contohkan, untuk localhost :
Organization Name (company) [Universitas Islam Negeri Sultan Syarif Kasim]:
Organizational Unit Name (department, division) []:sif.e
Email Address []:selipurnianda@gmail.com
Locality Name (city, district) [Pekanbaru]:
State or Province Name (full name) [Riau]:
Country Name (2 letter code) [ID]:
Common Name (hostname.com, IP, or your name) []:localhost
27. MENANDATANGANI SERTIFIKAT
REQUEST LOCALHOST
• set path=D:xamppapachebin;%PATH% (enter)
Perintah diatas untuk menyeting PATH agar ketika nanti kita mengetikkan perintah
request maka dia berjalan dengan sesuat keinginan, jika gagal maka silahkan cek
dan ketikan lagi perintah path kita.
• openssl ca -out localhost.crt.pem -config ./openssl.cnf -infiles localhost-req.pem
(enter) perintah ini untuk kita menandatangani sertifikat kita :
28. Berikut contoh penandatanganan sertifikat yang saya buat :
Sampai langkah ini kita telah selesai membuat dan menandatangani sertifikat
localhost kita :
29. MEMBUAT SERTIFIKAT VHOSTS
• D:xamppapachebinopenssl req -new -nodes -out vhosts-req.pem -keyout
private/vhosts-key.pem -config ./openssl.cnf (enter)
langkah membuat sertifikat vhosts ini sama dengan membuat localhost hanya
saja yang di gandi nama sertifikatnya saja.
30. • Lalu isi seperti yang saya contohkan, untuk localhost :
Organization Name (company) [Universitas Islam Negeri Sultan Syarif Kasim]:
Organizational Unit Name (department, division) []:Bisnisman USTek
Email Address []:selipurnianda@gmail.com.com
Locality Name (city, district) [Pekanbaru]:
State or Province Name (full name) [Riau]:
Country Name (2 letter code) [ID]:
Common Name (hostname.com, IP, or your name) []: sif.e
31. MENANDATANGANI SERTIFIKAT REQUEST
VHOSTS
• set path=C:xamppapachebin;%PATH% (enter)
Perintah diatas untuk menyeting PATH agar ketika nanti kita mengetikkan
perintah request maka dia berjalan dengan sesuat keinginan, jika gagal maka
silahkan
cek dan ketikan lagi perintah path kita.
• openssl ca -out vhosts.crt.pem -config ./openssl.cnf -infiles vhosts-req.pem (enter)
perintah ini untuk kita menandatangani sertifikat kita :
32. Berikut contoh penandatanganan sertifikat yang saya buat :
Sampai langkah ini kita telah selesai membuat dan menandatangani sertifikat vhosts
kita :
33. MENSETTING KUNCI YANG TELAH
DIBUAT
• Copy kunci public key yang berada pada drive C>sslcert
silahkan copy disini saya contohkan Copy localhost.crt.pem dan
vhosts.crt.pem Copy 2 file tersebut dan ikuti langkah Selanjutnya. Liat
gambar :
34. • Pastekan file yang telah kita copy tadi ke folder xamp>apache>conf>ssl.crt
silahkan pastekan file tadi didalam folder ssl.crt, dengan cara tekan cntl+v atau
kelik kanan dan pilih paste.
• Selanjutnya kita copy file private key yang berada pada drive C>sslcert>private.
silahkan copy 2 file localhost-key.pem dan vhosts-key.pem
35. •Selanjutnya pastekan 2 file private key tadi pada folder
xampp>apache>conf>ssl.key liat gambar :
36. MENGEDIT FILE HTTPD-SSL.CONF
Selanjutnya kita edit file httpd-ssl.conf pada xampp>apache>conf>extra dan pilih
file yang bernama httpd-ssl.conf, selanjutnya buka file tersebut menggunakan
notepad++ juka tidak ada gunakan saja notepad biasa.
37. Setelah anda buka file tadi, maka tambahkanlah dibarisan bawah dengan kodingan berikut :
< VirtualHost _default_ :443>
DocumentRoot "D:/xampp/htdocs"
ServerName www.seli.purnianda:433
ServerAdmin selipurnianda@gmail.com
SSLCertificateFile "conf/ssl.crt/localhost.crt.pem"
SSLCertificateKeyFile "conf/ssl.key/localhost-key.pem"
< /VirtualHost >
< VirtualHost _default_ :443>
DocumentRoot "D:/xampp/vhosts"
ServerName www.seli.purnianda:433
ServerAdmin selipurnianda@gmail.com
SSLCertificateFile "conf/ssl.crt/vhosts.crt.pem"
SSLCertificateKeyFile "conf/ssl.key/vhosts-key.pem"
< /VirtualHost >
38. SETTING DAN IMPORT SERTIFIKAT
-Pada langkah ini pastikan xampp anda, apache dan mysqlnya telah anda start
39. -Silahkan buka mozila atau aplikasi sejenisnya disini saya contohkan menggunakan
aplikasi mozila firefox.
-Bukalah pengaturan mozila anda dengan cara dapat anda liat gambar disamping.
-Selanjutnya muncul jendela baru yang menampilakan seperti gambar dibawah ini.
w
41. -Maka akan muncul jendela pengelola sertifikat, lalu silahkan pili impor...
-Selanjutnya pilihlah sertifikat/public key kita, yang berada pada folder
xampp>apache>conf>ssl.crt. Silahkan impor 2 file localhos dan vhosts secara satu
persatu.
-Cara impor : klik salah satu file lalu pilih open.
42. -Untuk melihat detail mengenai sertifikat,silahkan pilih sertifikat dan pilih
tampilkan maka akan muncul detai sertifikat seperti gambar disamping :