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.
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