Cara membuat Certificate Authority (CA) pada CentOS 7
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.
CA Server
Sekarang kita akan mulai membuat CA pada server ini.
1. Install OpenSSL pada server ini, atau biasanya CentOS sudah termasuk aplikasi OpenSSL didalamnya.
[root@m1-dz ~]# yum -y install openssl
2. Masuk dalam direktori tempat disimpannya CA beserta sertifikatnya, lalu buat file dibawah ini.
[root@m1-dz ~]# cd /etc/pki/CA[root@m1-dz CA]# touch index.txt[root@m1-dz CA]# echo '1000' > serial
3. Kita buat private key CA, dan membuat CA.
[root@m1-dz CA]# openssl genrsa -out private/cakey.pem 2048 #membuat private key CAGenerating 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 3650You are about to be asked to enter information that will be incorporatedinto 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 blankFor 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 negaraState or Province Name (full name) []:JABAR #provinsiLocality Name (eg, city) [Default City]:BEKASI #kotaOrganization Name (eg, company) [Default Company Ltd]:IT #bebasOrganizational Unit Name (eg, section) []:TKJ #bebasCommon Name (eg, your name or your server's hostname) []:m1-dz.network.dz #hostname serverEmail Address []:admin@network.dz #email
4. Setelah CA sudah selesai dibuat, kita sekarang dapat membuat sertifikat digital untuk web server, file server, dll.
#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 #MembuatrequestYou are about to be asked to enter information that will be incorporatedinto 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 blankFor some fields there will be a default value,If you enter '.', the field will be left blank.-----Country Name (2 letter code) [XX]:IDState or Province Name (full name) []:JABARLocality Name (eg, city) [Default City]:BEKASIOrganization Name (eg, company) [Default Company Ltd]:ITOrganizational Unit Name (eg, section) []:TKJCommon Name (eg, your name or your server's hostname) []:www.network.dz #sesuai dengan domain web serverEmail Address []:admin@network.dzPlease enter the following 'extra' attributesto be sent with your certificate requestA 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 CAUsing configuration from /etc/pki/tls/openssl.cnfCheck that the request matches the signatureSignature okCertificate Details:Serial Number: 4096 (0x1000)ValidityNot Before: Jun 24 06:45:53 2018 GMTNot After : Jun 24 06:45:53 2019 GMTSubject:countryName = IDstateOrProvinceName = JABARorganizationName = ITorganizationalUnitName = TKJcommonName = www.network.dzemailAddress = admin@network.dzX509v3 extensions:X509v3 Basic Constraints:CA:FALSENetscape Comment:OpenSSL Generated CertificateX509v3 Subject Key Identifier:6B:D5:B7:6A:F3:6C:48:5B:F9:3D:8A:8D:D3:D4:03:02:56:A1:13:CFX509v3 Authority Key Identifier:keyid:D0:87:23:7E:32:39:51:35:9F:01:C7:4F:02:65:2D:4E:57:AF:77:40Certificate is to be certified until Jun 24 06:45:53 2019 GMT (365 days)Sign the certificate? [y/n]:y1 out of 1 certificate requests certified, commit? [y/n]yWrite out database with 1 new entriesData Base Updated
5. File-file sertifikat yang telah dibuat harus disalin kedalam server yang membutuhkan sertifikat tersebut, misalnya menggunakan SCP atau copy paste.
[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)? yesWarning: 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.
6. 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.
Import ke Client
Kita import CA kedalam client agar client mempercayai setiap sertifikat yang ditandatangani oleh CA kita.
1. Export file cacert.pem kedalam komputer client dengan mengcopy paste nya atau menggunakan SCP.
[root@m1-dz CA]# cat cacert.pem-----BEGIN CERTIFICATE-----AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA-----END CERTIFICATE-----#copy paste menggunakan notepad kemudian simpan dalam file .crt
2. Kali ini untuk web site, buka salah satu web browser, kali ini saya menggunakan firefox.
3. Klik Menu > Preferences > Privacy & Security > Certificates > View Certificates, klik Import
4. Pilih file CA nya kemudian klik OK.
5. Centang keduanya lalu klik OK.
6. Setelah itu maka tidak akan muncul error lagi ketika membuka situs web https.
Sekian Terima kasih, cukup sampai disini postingan saya kali ini.
Posting Komentar untuk "Cara membuat Certificate Authority (CA) pada CentOS 7"