Certificate Autority atau CA merupakan sertifikat yang berfungsi untuk menandatangani sertifikat digital yang biasanya diguanakan untuk keperluan SSL web site, mail server, vpn, dll. Untuk membuat sebuah CA kita dapat menggunakan software OpenSSL.
OpenSSL biasanya sudah terinstall dalam sistem operasi linux, kali ini saya akan mencoba membuat CA pada sistem operasi CentOS. Dengan membuat CA kita dapat membuat sertifikat yang bisa digunakan untuk web server HTTPS, mail server dengan TLS, dll. Tugas dari CA adalah menandatangani sertifikat tersebut.
Berikut ini adalah topologi/ilustrasinya :
Terdapat satu server yang memiliki CA, server yang memiliki CA tersebut akan mengeluarkan dan menandatangani sertifikat digital yang kemudian digunakan oleh server lainnya untuk kebutuhan tertentu seperti Web Server (HTTPS), File Server (FTP over TLS), Mail Server, dll.
NetworkLessons.com
OpenSSL biasanya sudah terinstall dalam sistem operasi linux, kali ini saya akan mencoba membuat CA pada sistem operasi CentOS. Dengan membuat CA kita dapat membuat sertifikat yang bisa digunakan untuk web server HTTPS, mail server dengan TLS, dll. Tugas dari CA adalah menandatangani sertifikat tersebut.
Berikut ini adalah topologi/ilustrasinya :
Terdapat satu server yang memiliki CA, server yang memiliki CA tersebut akan mengeluarkan dan menandatangani sertifikat digital yang kemudian digunakan oleh server lainnya untuk kebutuhan tertentu seperti Web Server (HTTPS), File Server (FTP over TLS), Mail Server, dll.
CA Server
Sekarang kita akan mulai membuat CA pada server ini.- Install OpenSSL pada server ini, atau biasanya CentOS sudah termasuk aplikasi OpenSSL didalamnya.
- Masuk dalam direktori tempat disimpannya CA beserta sertifikatnya, lalu buat file dibawah ini.
- Kita buat private key CA, dan membuat CA.
- Setelah CA sudah selesai dibuat, kita sekarang dapat membuat sertifikat digital untuk web server, file server, dll.
- File-file sertifikat yang telah dibuat harus disalin kedalam server yang membutuhkan sertifikat tersebut, misalnya menggunakan SCP atau copy paste.
- Lakukan hal yang sama untuk file server, mail server dari langkah ke 4, yang berbeda hanya pada common name, sesuaikan common name dengan hostname + domain dari server yang akan menggunakan sertifikat tersebut.
[root@m1-dz ~]# yum -y install openssl
[root@m1-dz ~]# cd /etc/pki/CA [root@m1-dz CA]# touch index.txt [root@m1-dz CA]# echo '1000' > serial
[root@m1-dz CA]# openssl genrsa -out private/cakey.pem 2048 #membuat private key CA Generating RSA private key, 2048 bit long modulus ................................+++ ...................................................................+++ e is 65537 (0x10001) [root@m1-dz CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650 You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]:ID #Kode negara State or Province Name (full name) []:JABAR #provinsi Locality Name (eg, city) [Default City]:BEKASI #kota Organization Name (eg, company) [Default Company Ltd]:IT #bebas Organizational Unit Name (eg, section) []:TKJ #bebas Common Name (eg, your name or your server's hostname) []:m1-dz.network.dz #hostname server Email Address []:admin@network.dz #email
#WEB SERVER [root@m1-dz CA]# openssl genrsa -out private/web-key.key 2048 #Membuat private key [root@m1-dz CA]# openssl req -new -key private/web-key.key -out newcerts/web-key.csr #Membuatrequest You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]:ID State or Province Name (full name) []:JABAR Locality Name (eg, city) [Default City]:BEKASI Organization Name (eg, company) [Default Company Ltd]:IT Organizational Unit Name (eg, section) []:TKJ Common Name (eg, your name or your server's hostname) []:www.network.dz #sesuai dengan domain web server Email Address []:admin@network.dz Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: [root@m1-dz CA]# openssl ca -in newcerts/web-key.csr -out newcerts/web-cert.crt #Menandatangani sertifikat dengan CA Using configuration from /etc/pki/tls/openssl.cnf Check that the request matches the signature Signature ok Certificate Details: Serial Number: 4096 (0x1000) Validity Not Before: Jun 24 06:45:53 2018 GMT Not After : Jun 24 06:45:53 2019 GMT Subject: countryName = ID stateOrProvinceName = JABAR organizationName = IT organizationalUnitName = TKJ commonName = www.network.dz emailAddress = admin@network.dz X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: OpenSSL Generated Certificate X509v3 Subject Key Identifier: 6B:D5:B7:6A:F3:6C:48:5B:F9:3D:8A:8D:D3:D4:03:02:56:A1:13:CF X509v3 Authority Key Identifier: keyid:D0:87:23:7E:32:39:51:35:9F:01:C7:4F:02:65:2D:4E:57:AF:77:40 Certificate is to be certified until Jun 24 06:45:53 2019 GMT (365 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated
[root@m1-dz CA]# scp newcerts/web-cert.crt root@192.168.100.11:/etc/pki/tls/certs/ The authenticity of host '192.168.100.11 (192.168.100.11)' can't be established. ECDSA key fingerprint is SHA256:nYvo3n6q0dAFdLFikwFkRoEfOZU74rT0by5ojaiZZ80. ECDSA key fingerprint is MD5:d4:18:13:27:d3:26:06:3a:9a:40:11:80:35:0a:07:2c. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.100.11' (ECDSA) to the list of known hosts. root@192.168.100.11's password: web-cert.crt 100% 4592 1.4MB/s 00:00 [root@m1-dz CA]# scp private/web-key.key root@192.168.100.11:/etc/pki/tls/private/ root@192.168.100.11's password: web-key.key 100% 1679 55.0KB/s 00:00 #tulisan bewarna merah merupakan IP Address server yang dituju beserta direktori untuk menyimpan cert/key nya.
Import ke Client
Kita import CA kedalam client agar client mempercayai setiap sertifikat yang ditandatangani oleh CA kita.- Export file cacert.pem kedalam komputer client dengan mengcopy paste nya atau menggunakan SCP.
- Kali ini untuk web site, buka salah satu web browser, kali ini saya menggunakan firefox.
- Klik Menu > Preferences > Privacy & Security > Certificates > View Certificates, klik Import.
- Pilih file CA nya kemudian klik OK.
- Centang keduanya lalu klik OK.
- Setelah itu maka tidak akan muncul error lagi ketika membuka situs web https.
[root@m1-dz CA]# cat cacert.pem
-----BEGIN CERTIFICATE-----
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-----END CERTIFICATE-----
#copy paste menggunakan notepad kemudian simpan dalam file .crt
Komentar
Posting Komentar