Tutorial Certificate Authority (CA) Public Key Infrastructure (PKI)

Click here to load reader

  • date post

    17-Jan-2017
  • Category

    Education

  • view

    133
  • download

    0

Embed Size (px)

Transcript of Tutorial Certificate Authority (CA) Public Key Infrastructure (PKI)

  • Oleh:APRIDILA ANGGITA SURINIM.11453205120TUTORIAL CERTIFICATE AUTORITY (CA)PUBLIC KEY INFRASTRUCTURE (PKI)Pada VIRTUALHOST DAN SSLPROGRAM STUDI SISTEM INFORMASIFAKULTAS SAINS DAN TEKNOLOGIUNIVERSITAS ISLAM NEGERI SULTAN SYARIF KASIM RIAU2017

    *

  • SEKILAS TENTANG CA (Certificate Authority)Certificate Authority (CA) merupakan salah satu komponen dari PKI (Public Key Infrastructure).Dalam pembahasan kali ini saya berperan sebagai CA (Certificate Authority) yang akan menandatangani sertifikat sendiri serta merubah sertifikat SSL yang dimiliki oleh XAMPP.Langkah-langkah yang akan dilakukan akan terbagi menjadi beberapa tahapan:Persiapan (Sertifikat SSL pada XAMPP),Membuat Sertifikat CA,Membuat Sertifikat Untuk Localhost,Menandatangani Sertifikat Request,Meletakan CRT dan Key Ke Apache,Menginstall sertifikat CA.

  • Menjalankan CMD Sebagai AdministratorKetikkan cmd di perncarian Windows.Klik kanan pada cmd.Klik Run as administrator.

  • Setting Berkas Host Ketikkan: notepad \Windows\Systems32\drivers\etc\hosts

    Tambahkan: 127.0.0.1 namaAnda.compada notepad hosts.Kemudian simpan.

  • Setting Berkas Host (Cont...)Lakukan pengujian apakah berkas hosts berhasil ditambahkan atau belum dengan mengetikkan nama.com tadi di cmd, dengan perintah: ping namaAnda.com

    Apabila muncul pesan reply from 127.0.0.1: byte=32 time

  • Setting VirtualHost dengan Apache (XAMPP)Ketikkan: notepad C:\Xampp\apache\conf\httpd.conf

    Tambahkan text pada notepad httpd.conf yang diberi tanda kotak warna merah di samping.Kemudian simpan.

    Maksud perintah yang ditambahkan di atas adalah:Meng-enable Name Based Virtual Host di port 80 untuk semua IP Address kita (*). ServerAdmin di sini adalah email admin yang nanti keluar kalau ada error pada VirtualHost kita.Perintah yang penting di sini adalah ServerName dan ServerAlias: localhost disini artinya untuk VirtualHost ini jika orang mengakses localhost atau localhost.localdomain maka apache akan memberikan DocumentRoot "C:/xampp/htdocsServerAdmin pada , [email protected] dapat diubah dengan [email protected],Include conf/sites-enabled/*.conf pada . conf/sites-enabled/*.conf merupakan tempat penyimpanan *.conf nantinya.

    *

  • Setting VirtualHost dengan Apache (Cont...)Buat folder sites-enabled pada direktori conf dengan perintah mkdir C:\xampp\apache\conf\sites-enabled.

    Buat sebuah berkas di dalam folder sites-enabled tersebut notepad C:\xampp\apache\conf\sites-enabled\apridilagiva.conf

    *nb. apridilagiva.conf dapat diubah dengan namaAnda.conf

    Nb.Akan muncul pesan peringatan dari notepad bahwa dia tidak bisa menemukan apridilagiva.conf karena file belum dibuat.Klik yes untuk membuat file baru dengan nama apridilagiva.conf.

    *

  • Tambahkan isi pada notepad, seperti gambar di bawah, kemudian simpan.

    *nb. apridilagiva dapat diubah dengan namaAndaSetting VirtualHost dengan Apache (Cont...)

    *

  • Buat direktori vhosts untuk meletakan logs dan tempat penyimpanan website yang akan anda buat (public_html). Ketikkan perintah seperti gambar di bawah:mkdir C:\xampp\vhostsmkdir C:\xampp\vhosts\apridilagivamkdir C:\xampp\vhosts\apridilagiva\logsmkdir C:\xampp\vhosts\apridilagiva\public_html

    *nb. apridilagiva dapat diubah dengan namaAndaSetting VirtualHost dengan Apache (Cont...)

  • Buka notepad hosts dengan mengetikkan perintah: notepad C:\Windows\System32\drivers\etc\hosts

    Tambahkan: 127.0.0.1 namaAnda.compada notepad hosts.Kemudian simpan.

    Setting VirtualHost dengan Apache (Cont...)

  • Start Apache pada Xampp.Setting VirtualHost dengan Apache (Cont...)

    *

  • Lakukan pengujian pada Mozilla Firefox dengan mengetikkan apridilagiva atau namaAnda.

    Tampilan di atas membuktikan bahwa localhost anda berhasil.Setting VirtualHost dengan Apache (Cont...)

  • Buat folder sslcert di Local C dengan mengetikkan perintah nomor 1.

    Masuk ke folder sslcert dengan mengetikkan perintah nomor 2.

    Buat folder cert dan folder private di dalam folder sslcert dengan mengetikkan perintah di bawah.

    1. Persiapan

    *nb.Folder certs nantinya untuk menampung semua sertifikat yang dihasilkan,Folder private untuk menyimpan semua private-key anda.

    *

  • 1. Persiapan (Cont...)Ketikan perintah: echo 100001 >serial (enter)Ketikan perintah: copy con serial (enter)

    100001 maka akan muncul pesan : ketik All (enter) lalu tekan ctrl + z (enter)

    *nb.100001 merupakan sebuah berkas bernama serial.Berkas serial ini nantinya digunakan untuk otomatis memberi nomor serial untuk setiap sertifikat yang dihasilkan.

    *

  • Buat sebuah berkas dengan nama certindex.txt untuk menampung daftar sertifikat yang telah ditandatangani dengan mengetikkan notepad certindex.txt1. Persiapan (Cont...)

  • Buat konfigurasi OpenSSL, dengan perintah notepad openssl.cnf

    1. Persiapan (Cont...)Apabila muncul pesan peringatan seperti pada gambar sebelumnya, maka klik Yes.

    Copy-paste perintah di bawah untuk mengisi notepad openssl.cnf:

    ## OpenSSL configuration file.## Establish working directory.dir = .[ ca ]default_ca = CA_default[ CA_default ]serial = $dir/serialdatabase = $dir/certindex.txtnew_certs_dir = $dir/certscertificate = $dir/cacert.pemprivate_key = $dir/private/cakey.pemdefault_days = 3650#default_md = md5default_md = sha1preserve = noemail_in_dn = nonameopt = default_cacertopt = default_capolicy = policy_match[ policy_match ]countryName = matchstateOrProvinceName = matchorganizationName = matchorganizationalUnitName = optionalcommonName = suppliedemailAddress = optional[ req ]default_bits = 2048 # Size of keysdefault_keyfile = key.pem # name of generated keys#default_md = md5 # message digest algorithmdefault_md = sha1 # message digest algorithmstring_mask = nombstr # permitted charactersdistinguished_name = req_distinguished_namereq_extensions = v3_req[ req_distinguished_name ]# Variable name Prompt string#------------------------- ----------------------------------0.organizationName = Organization Name (company)organizationalUnitName = Organizational Unit Name (department, division)emailAddress = Email AddressemailAddress_max = 40localityName = Locality Name (city, district)stateOrProvinceName = State or Province Name (full name)countryName = Country Name (2 letter code)countryName_min = 2countryName_max = 2commonName = 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 KasimlocalityName_default = PekanbarustateOrProvinceName_default = RiaucountryName_default = ID[ v3_ca ]basicConstraints = CA:TRUEsubjectKeyIdentifier = hashauthorityKeyIdentifier = keyid:always,issuer:always[ v3_req ]basicConstraints = CA:FALSEsubjectKeyIdentifier = hash*

  • Agar anda bisa menandangani seluruh certificate request (CSR), terlebih dahulu anda harus memiliki sebuah sertifikat (KEY, Private Key), dengan mengetikkan perintah berikut pada folder sslcert, perintah:C:\xampp\apache\bin\openssl.exe req -new -x509 -extensions v3_ca -keyout private\CAkey.pem -out CAcert.pem -days 3650 -config ./openssl.cnf 2. Membuat Sertifikat CA (Certificate Authority)

    *

  • Masukkan pass phrase yang akan kita gunakan untuk sertifikat CA pada kotak merah nomor 1. 2. Membuat Sertifikat CA (Cont...)

    *nb.Pass phrase tidak ditampilkan saat memasukkannya, tidak ada tertera angka, huruf maupun simbol.Jadi, disarankan untuk memasukkan pass phrase-nya jangan terlalu panjang, paling sedikit terdiri dari 4 biji.

    *

  • 2. Membuat Sertifikat CA (Cont...)Akan muncul pemberitahuan bahwa harus memasukkan informasi yang dibutuhkan (kotak merah nomor 2).Masukkan informasi yang dibutuhkan dengan tanda [ ] yang telah ditandai dengan kotak berwarna kuning (kotak merah nomor 3).

    *nb.Setelah menyelesaikan dalam memasukkan informasi, berarti anda sudah memiliki sebuah kunci private untuk menandatangani sertifikat.Kunci private tersebut disimpan di folder private, dengan nama CAkey.pem.Adapun berkas CAcert.pem adalah sertifikat public kita yang nanti akan digunakan oleh client untuk menginstal sertifikat kita.

    *

  • Agar bisa membuat sertifikat untuk localhost, untuk menggantikan sertifikat yang dibuat oleh XAMPP, dan ditandatangani sendiri oleh kita dengan mengetikkan perintah:C:\xampp\apache\bin\openssl req -new -nodes -out localhost-req.pem -keyout private/localhost-key.pem -config ./openssl.cnf

    3. Membuat Sertifikat Untuk LocalHost

    *

  • Masukkan kembali informasi yang dibutuhkan.3. Membuat Sertifikat Untuk LocalHost (Cont...)

  • Kali ini, kita menandatangani sertifikat request dari server localhost, dimana si localhost ini telah memberikan berkas localhost-req.pem kepada kita.

    Agar perintah ssl berjalan, maka dilakukan setting-an path agar dapat memasukkan direktori C:\xampp\apache\bin dengan mengetikkan perintah pada folder sslcert: set path=C:\xampp\apache\bin;%PATH% 4. Membuat Sertifikat Request

    Dan pada saat inilah PKI dapat digunakan.*

  • 4. Membuat Sertifikat Request (Cont...)Masukkan pass phrase.Ketikkan y.Ketikkan y.

    *nb.pass p