Lompat ke konten Lompat ke sidebar Lompat ke footer

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 :

Cara membuat Certificate Authority (CA) pada CentOS 7
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 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
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 #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
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)? 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.
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-----
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-----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

Cara membuat Certificate Authority (CA) pada CentOS 7

4. Pilih file CA nya kemudian klik OK.

Cara membuat Certificate Authority (CA) pada CentOS 7

5. Centang keduanya lalu klik OK.

Cara membuat Certificate Authority (CA) pada CentOS 7

6. Setelah itu maka tidak akan muncul error lagi ketika membuka situs web https.

Cara membuat Certificate Authority (CA) pada CentOS 7

Sekian Terima kasih, cukup sampai disini postingan saya kali ini.
Student Terpelajar
Student Terpelajar Content Creator, Video Creator and Writer

Posting Komentar untuk "Cara membuat Certificate Authority (CA) pada CentOS 7"