Tutorial

Cara Menyiapkan dan Mengonfigurasi Otoritas Sertifikat (CA) Pada Ubuntu 20.04

Published on November 13, 2020
Bahasa Indonesia
Cara Menyiapkan dan Mengonfigurasi Otoritas Sertifikat (CA) Pada Ubuntu 20.04

Pengantar

Otoritas Sertifikat (CA) adalah entitas yang bertanggung jawab untuk menerbitkan sertifikat digital untuk memverifikasi identitas di internet. Meskipun CA publik adalah pilihan populer untuk memverifikasi identitas dari situs web dan layanan lainnya yang disediakan ke masyarakat umum, CA privat digunakan untuk grup tertutup dan layanan privat.

Membangun Otoritas Sertifikat privat akan memungkinkan Anda mengonfigurasi, menguji, dan menjalankan program yang membutuhkan koneksi terenkripsi antara klien dan server. Menggunakan CA privat, Anda dapat menerbitkan sertifikat untuk pengguna, server, atau masing-masing program di dalam infrastruktur Anda.

Beberapa contoh program pada Linux yang menggunakan CA privat miliknya sendiri adalah OpenVPN dan Puppet. Anda juga dapat mengonfigurasi server web Anda untuk menggunakan sertifikat yang diterbitkan oleh CA privat untuk membuat lingkungan pengembangan dan penahapan sesuai dengan server produksi yang menggunakan TLS untuk mengenkripsi koneksi.

Dalam panduan ini, kita akan mempelajari cara menyiapkan Otoritas Sertifikat (CA) privat pada server Ubuntu 20.04, dan cara membuat dan menandatangani sertifikat pengujian menggunakan CA baru. Anda juga akan mempelajari cara mengimpor sertifikat publik dari server CA ke dalam penyimpanan sertifikat sistem operasi sehingga Anda dapat memverifikasi rantai kepercayaan antara server jauh dan CA atau pengguna. Terakhir, Anda akan mempelajari cara mencabut sertifikat dan mendistribusikan Daftar Pencabutan Sertifikat untuk memastikan bahwa hanya pengguna dan sistem resmi dapat menggunakan layanan yang bergantung pada CA Anda.

Prasyarat

Untuk menyelesaikan tutorial ini, Anda akan membutuhkan akses ke server Ubuntu 20.04 untuk menjadi hos dari server CA Anda. Anda perlu mengonfigurasi pengguna non-root dengan privilese sudo sebelum Anda memulai panduan ini. Anda dapat mengikuti panduan penyiapan server awal Ubuntu 20.04 dari kami untuk menyiapkan pengguna dengan izin yang sesuai. Tutorial terkait yang juga akan menyiapkan firewall, yang diasumsikan sudah siap di seluruh panduan ini.

Server ini akan disebut sebagai Server CA dalam tutorial ini.

Pastikan bahwa Server CA adalah sistem yang berdiri sendiri. Ini hanya akan digunakan untuk mengimpor, menandatangani, dan mencabut permintaan sertifikat. Server Ini tidak boleh menjalankan layanan lainnya, dan idealnya akan nonaktif atau sepenuhnya mati saat Anda tidak aktif bekerja dengan CA Anda.

Catatan: Bagian terakhir dari tutorial ini bersifat opsional seandainya Anda ingin mempelajari cara menandatangani dan mencabut sertifikat. Jika Anda memilih untuk menyelesaikan langkah-langkah latihan itu, Anda akan membutuhkan server Ubuntu 20.04 kedua atau Anda juga dapat menggunakan komputer Linux lokal milik Anda yang menjalankan Ubuntu atau Debian, atau distribusi yang diturunkan dari salah satunya.

Langkah 1 — Menginstal Easy-RSA

Tugas pertama dalam tutorial ini adalah menginstal serangkaian skrip easy-rsa pada Server CA Anda. easy-rsa adalah alat manajemen Otoritas Sertifikat yang akan Anda gunakan untuk membuat kunci privat, dan sertifikat root publik, yang kemudian Anda akan gunakan untuk menandatangani permintaan dari klien dan server yang akan bergantung pada CA Anda.

Log masuk ke Server CA Anda sebagai pengguna sudo non-root yang Anda buat selama langkah penyiapan awal dan jalankan yang berikut:

  1. sudo apt update
  2. sudo apt install easy-rsa

Anda akan diminta mengunduh paket dan menginstalnya. Tekan y untuk mengonfirmasi bahwa Anda ingin menginstal paket.

Pada titik ini, Anda sudah menyiapkan segala sesuatu yang Anda perlukan dan siap menggunakan Easy-RSA. Pada langkah selanjutnya, Anda akan membuat Infrastruktur Kunci Publik, lalu mulai membangun Otoritas Sertifikat Anda.

Langkah 2 — Mempersiapkan Direktori infrastruktur Kunci Publik

Kini setelah Anda menginstal easy-rsa, tiba waktunya untuk membuat kerangka Infrastruktur Kunci Publik (PKI) di dalam Server CA. Pastikan bahwa Anda masih log masuk sebagai pengguna non-root Anda dan buat direktori easy-rsa. Pastikan bahwa Anda tidak menggunakan sudo untuk menjalankan salah satu perintah berikut, karena pengguna normal Anda harus mengelola dan berinteraksi dengan CA tanpa privilese yang ditingkatkan.

  1. mkdir ~/easy-rsa

Ini akan menciptakan direktori baru bernama easy-rsa di dalam folder rumah Anda. Kita akan menggunakan direktori ini untuk membuat tautan simbolis yang mengarah ke berkas paket easy-rsa yang kita telah instal pada langkah sebelumnya. Berkas-berkas ini berada di dalam folder /usr/share/easy-rsa di Server CA.

Buat symlink dengan perintah ln:

  1. ln -s /usr/share/easy-rsa/* ~/easy-rsa/

Catatan: Walaupun panduan lain mungkin menginstruksikan Anda untuk menyalin berkas paket easy-rsa ke direktori PKI Anda, tutorial ini mengadopsi pendekatan symlink. Hasilnya, pembaruan apa pun ke paket easy-rsa akan secara otomatis tercermin pada skrip PKI Anda.

Untuk membatasi akses ke direktori PKI yang baru, pastikan bahwa hanya pemilik yang dapat mengaksesnya menggunakan perintah chmod:

  1. chmod 700 /home/sammy/easy-rsa

Terakhir, inisialisasi PKI di dalam direktori easy-rsa:

  1. cd ~/easy-rsa
  2. ./easyrsa init-pki
Output
init-pki complete; you may now create a CA or requests. Your newly created PKI dir is: /home/sammy/easy-rsa/pki

Setelah menyelesaikan bagian ini, Anda memiliki direktori yang memuat semua berkas yang dibutuhkan untuk membuat Otoritas Sertifikat. Pada bagian selanjutnya, Anda akan membuat kunci privat dan sertifikat publik untuk CA Anda.

Langkah 3 — Membuat Otoritas Sertifikat

Sebelum Anda dapat membuat kunci dan sertifikat privat CA, Anda perlu membuat dan mengisi berkas yang bernama vars dengan beberapa nilai asali. Pertama-tama, Anda akan memasukkan cd ke direktori easy-rsa, lalu Anda akan membuat dan mengedit berkas vars menggunakan nano atau editor teks pilihan Anda:

  1. cd ~/easy-rsa
  2. nano vars

Setelah berkas dibuka, rekatkan di baris berikut ini dan edit masing-masing nilai yang disorot untuk mencerminkan info organisasi Anda. Bagian penting di sini adalah memastikan bahwa Anda tidak meninggalkan nilai kosong apa pun:

~/easy-rsa/vars
set_var EASYRSA_REQ_COUNTRY "US" set_var EASYRSA_REQ_PROVINCE "NewYork" set_var EASYRSA_REQ_CITY "New York City" set_var EASYRSA_REQ_ORG "DigitalOcean" set_var EASYRSA_REQ_EMAIL "admin@example.com" set_var EASYRSA_REQ_OU "Community" set_var EASYRSA_ALGO "ec" set_var EASYRSA_DIGEST "sha512"

Setelah Anda selesai, simpan dan tutup berkas. Jika Anda menggunakan nano, Anda dapat melakukan itu dengan menekan CTRL+X, lalu Y, dan ENTER untuk mengonfirmasi. Anda kini siap untuk membangun CA Anda.

Untuk membuat pasangan kunci root publik dan privat pada Otoritas Sertifikat Anda, jalankan perintah ./easy-rsa lagi, kali ini dengan opsi build-ca:

  1. ./easyrsa build-ca

Pada keluaran, Anda akan melihat beberapa baris tentang versi OpenSSL dan Anda akan diminta memasukkan frasa sandi untuk pasangan kunci Anda. Pastikan untuk memilih frasa sandi yang kuat, dan catat di tempat yang aman. Anda akan perlu memasukkan frasa sandi setiap kali Anda perlu berinteraksi dengan CA, misalnya untuk menandatangani atau mencabut sertifikat.

Anda juga akan diminta untuk mengonfirmasi Nama Umum (CN) untuk CA Anda. CN adalah nama yang digunakan untuk merujuk ke mesin ini dalam konteks Otoritas Sertifikat. Anda dapat memasukkan rangkaian karakter apa pun untuk Nama Umum CA, tetapi untuk menyederhanakan, tekan ENTER untuk menerima nama asali.

Output
. . . Enter New CA Key Passphrase: Re-Enter New CA Key Passphrase: . . . Common Name (eg: your user, host, or server name) [Easy-RSA CA]: CA creation complete and you may now import and sign cert requests. Your new CA certificate file for publishing is at: /home/sammy/easy-rsa/pki/ca.crt

Catatan: Jika Anda tidak ingin diminta memasukkan kata sandi setiap kali Anda berinteraksi dengan CA, Anda dapat menjalankan perintah build-ca dengan opsi nopass, seperti ini:

  1. ./easyrsa build-ca nopass

Anda kini memiliki dua berkas penting — ~/easy-rsa/pki/ca.crt dan ~/easy-rsa/pki/private/ca.key — yang menjadi komponen privat dan publik dari Otoritas Sertifikat.

  • ca.crt adalah berkas sertifikat publik dari CA. Pengguna, server, dan klien akan menggunakan sertifikat ini untuk memverifikasi bahwa mereka adalah bagian dari jaringan kepercayaan yang sama. Setiap pengguna dan server yang menggunakan CA Anda perlu memiliki salinan dari berkas ini. Semua pihak akan bergantung pada sertifikat publik untuk memastikan bahwa seseorang tidak meniru suatu sistem dan melakukan Serangan orang-di-tengah.

  • ca.key adalah kunci privat yang digunakan CA untuk menandatangani sertifikat server dan klien. Jika penyerang memperoleh akses ke CA Anda dan, pada gilirannya, berkas ca.key, Anda harus menghancurkan CA Anda. Inilah sebabnya berkas ca.key Anda harus berada hanya di dalam mesin CA Anda dan, idealnya, mesin CA Anda harus tetap nonaktif saat tidak menandatangani permintaan sertifikat sebagai tindakan keamanan ekstra.

Dengan demikian, CA Anda sudah berada di tempatnya dan siap digunakan untuk menandatangani permintaan sertifikat dan mencabut sertifikat.

Langkah 4 — Mendistribusikan Sertifikat Publik dari Otoritas Sertifikat Anda

Kini CA Anda sudah terkonfigurasi dan siap untuk bertindak sebagai root kepercayaan untuk sistem apa pun yang Anda ingin konfigurasi untuk menggunakannya. Anda dapat menambah sertifikat CA ke server OpenVPN, server web, server surel, dan sebagainya. Pengguna atau server apa pun yang perlu memverifikasi identitas pengguna atau server lain di dalam jaringan Anda harus memiliki salinan berkas ca.crt yang diimpor ke dalam penyimpanan sertifikat dari sistem operasinya.

Untuk mengimpor sertifikat publik CA menjadi sistem Linux kedua seperti server lokal atau komputer lokal, pertama-tama dapatkan salinan dari berkas CA ca.crt dari server CA Anda. Anda dapat menggunakan perintah cat untuk mengeluarkannya pada suatu terminal, lalu rekatkan ke dalam berkas pada komputer kedua yang mengimpor sertifikat. Anda juga dapat menggunakan alat seperti scp dan rsync untuk mentransfer berkas di antara beberapa sistem. Namun, kita akan menggunakan salin dan rekat dengan nano pada langkah ini karena itu akan bekerja pada semua sistem.

Sebagai pengguna non-root pada Server CA Anda, jalankan perintah berikut:

  1. cat ~/easy-rsa/pki/ca.crt

Akan ada keluaran di terminal Anda yang mirip dengan berikut ini:

Output
-----BEGIN CERTIFICATE----- MIIDSzCCAjOgAwIBAgIUcR9Crsv3FBEujrPZnZnU4nSb5TMwDQYJKoZIhvcNAQEL BQAwFjEUMBIGA1UEAwwLRWFzeS1SU0EgQ0EwHhcNMjAwMzE4MDMxNjI2WhcNMzAw . . . . . . -----END CERTIFICATE-----

Salin segalanya, termasuk garis dan tanda hubung pada -----BEGIN CERTIFICATE----- dan -----END CERTIFICATE-----.

Pada sistem Linux kedua, gunakan nano atau editor teks pilihan Anda untuk membuka berkas yang bernama /tmp/ca.crt:

  1. nano /tmp/ca.crt

Tempelkan konten yang Anda baru saja salin dari Server CA ke dalam editor. Setelah Anda selesai, simpan dan tutup berkas. Jika Anda menggunakan nano, Anda dapat melakukan itu dengan menekan CTRL+X, lalu Y, dan ENTER untuk mengonfirmasi.

Karena kini Anda memiliki salinan dari berkas ca.crt pada sistem Linux kedua, kini saatnya mengimpor sertifikat ke dalam penyimpanan sertifikat dari sistem operasinya.

Pada sistem yang berbasis Ubuntu dan Debian, jalankan perintah berikut sebagai pengguna non-root untuk mengimpor sertifikat:

Ubuntu and Debian derived distributions
  1. sudo cp /tmp/ca.crt /usr/local/share/ca-certificates/
  2. sudo update-ca-certificates

Untuk mengimpor sertifikat Server CA pada sistem berbasis CentOS, Fedora, atau RedHat, salin dan rekatkan konten berkas pada sistem ini seperti dalam contoh sebelumnya di dalam berkas yang bernama /tmp/ca.cert. Selanjutnya, Anda akan menyalin sertifikat itu ke dalam /etc/pki/ca-trust/source/anchors/, lalu jalankan perintah update-ca-trust.

CentOS, Fedora, RedHat distributions
  1. sudo cp /tmp/ca.crt /etc/pki/ca-trust/source/anchors/
  2. sudo update-ca-trust

Sekarang sistem Linux kedua Anda akan memercayai sertifikat apa pun yang telah ditandatangani oleh server CA itu.

Catatan: Jika Anda menggunakan CA dengan server web dan Firefox sebagai peramban, Anda perlu mengimpor sertifikat ca.crt publik secara langsung ke dalam Firefox. Firefox tidak menggunakan penyimpanan sertifikat dari sistem operasi lokal. Untuk detail tentang cara menambah sertifikat CA Anda ke Firefox, lihat artikel dukungan ini dari Mozilla yang tentang Menyiapkan Otoritas Sertifikat (CA) pada Firefox.

Jika Anda menggunakan CA untuk berintegrasi dengan lingkungan Windows atau komputer desktop, lihat dokumentasi tentang cara menggunakan certutil.exe untuk menginstal sertifikat CA.

Jika Anda menggunakan tutorial ini sebagai prasyarat untuk tutorial lain, atau tidak asing dengan cara menandatangani dan mencabut sertifikat, Anda dapat berhenti di sini. Jika Anda ingin belajar lebih lanjut tentang cara menandatangani dan mencabut sertifikat, bagian opsional berikut akan menjelaskan masing-masing proses itu secara mendetail.

(Opsional) — Membuat Permintaan Penandatanganan Sertifikat dan Mencabut Sertifikat

Bagian berikut dari tutorial ini bersifat opsional. Jika Anda telah menyelesaikan semua langkah sebelumnya, Anda memiliki Otoritas Sertifikat yang telah terkonfigurasi dan berfungsi sepenuhnya sehingga Anda dapat menggunakannya sebagai prasyarat untuk tutorial lain. Anda dapat mengimpor berkas ca.crt dan memverifikasi sertifikat di dalam jaringan Anda yang telah ditandatangani oleh CA Anda.

Jika Anda ingin berlatih dan belajar lebih lanjut tentang cara menandatangani permintaan sertifikat dan cara mencabut sertifikat, bagian opsional ini akan menjelaskan bagaimana kedua proses itu berjalan.

(Opsional) — Membuat dan Menandatangani Permintaan Sertifikat Latihan

Kini setelah Anda memiliki CA yang siap digunakan, Anda dapat berlatih membuat kunci dan permintaan sertifikat privat untuk membiasakan diri dengan proses penandatanganan dan distribusi.

Permintaan Penandatanganan Sertifikat (CSR) terdiri dari tiga bagian: kunci publik, mengidentifikasi informasi tentang sistem permintaan, dan penandatanganan dari permintaan itu sendiri, yang dibuat menggunakan kunci privat dari pihak yang meminta. Kunci privat akan dirahasiakan dan digunakan untuk mengenkripsi informasi bahwa siapa pun yang memiliki sertifikat publik yang ditandatangani dapat mendekripsi.

Langkah-langkah berikut akan dijalankan pada sistem Ubuntu atau Debian kedua Anda, atau distribusi yang berasal dari salah satunya. Ini dapat berupa server jauh lain, atau mesin Linux lokal seperti laptop atau komputer desktop. Karena easy-rsa tidak tersedia secara asali pada semua sistem, kita akan menggunakan alat openssl untuk membuat kunci dan sertifikat privat latihan.

openssl biasanya terinstal secara asali pada sebagian besar distribusi Linux, tetapi hanya untuk memastikan, jalankan berikut ini pada sistem Anda:

  1. sudo apt update
  2. sudo apt install openssl

Saat diminta untuk menginstal openssl, masukkan y untuk melanjutkan dengan langkah instalasi. Kini Anda siap untuk membuat CSR latihan dengan openssl.

Langkah pertama yang Anda perlu selesaikan untuk membuat CSR adalah membuat kunci privat. Untuk membuat kunci privat menggunakan openssl, buat direktori practice-csr, lalu buat kunci di dalamnya. Kita akan membuat permintaan ini untuk server fiksi bernama sammy-server, dan bukannya membuat sertifikat yang digunakan untuk mengidentifikasi pengguna atau CA lain.

  1. mkdir ~/practice-csr
  2. cd ~/practice-csr
  3. openssl genrsa -out sammy-server.key
Output
Generating RSA private key, 2048 bit long modulus (2 primes) . . . . . . e is 65537 (0x010001)

Karena kini Anda memiliki kunci privat, Anda dapat membuat CSR yang sesuai, menggunakan utilitas openssl lagi. Anda akan diminta mengisi beberapa bidang seperti Country, State, dan City. Anda dapat memasukkan . jika Anda ingin membiarkan suatu bidang tetap kosong, tetapi berhati-hatilah bahwa jika ini adalah CSR yang nyata, sebaiknya gunakan nilai yang benar untuk lokasi dan organisasi Anda:

  1. openssl req -new -key sammy-server.key -out sammy-server.req
Output
. . . ----- Country Name (2 letter code) [XX]:US State or Province Name (full name) []:New York Locality Name (eg, city) [Default City]:New York City Organization Name (eg, company) [Default Company Ltd]:DigitalOcean Organizational Unit Name (eg, section) []:Community Common Name (eg, your name or your server's hostname) []:sammy-server Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:

Jika Anda ingin secara otomatis menambah nilai-nilai itu sebagai bagian dari permohonan openssl alih-alih melalui prompt interaktif, Anda dapat melewatkan argumen -subj ke OpenSSL. Pastikan untuk mengedit nilai yang disorot supaya sesuai dengan lokasi latihan, organisasi, dan nama server Anda:

  1. openssl req -new -key sammy-server.key -out server.req -subj \
  2. /C=US/ST=New\ York/L=New\ York\ City/O=DigitalOcean/OU=Community/CN=sammy-server

Untuk memverifikasi konten dari suatu CSR, Anda dapat membaca berkas permintaan dengan openssl dan memeriksa bidang-bidang di dalamnya:

  1. openssl req -in sammy-server.req -noout -subject
Output
subject=C = US, ST = New York, L = New York City, O = DigitalOcean, OU = Community, CN = sammy-server

Setelah Anda puas dengan subjek dari permintaan sertifikat latihan, salin berkas sammy-server.req ke server CA Anda menggunakan scp:

  1. scp sammy-server.req sammy@your_ca_server_ip:/tmp/sammy-server.req

Dalam langkah ini, Anda membuat Permintaan Penandatanganan Sertifikat untuk server fiksi bernama sammy-server. Dalam skenario dunia nyata, permintaan itu mungkin berasal dari sesuatu seperti server web pengembangan atau penahapan yang membutuhkan sertifikat TLS untuk menguji; atau dapat berasal dari server OpenVPN yang meminta suatu sertifikat sehingga pengguna dapat terhubung ke VPN. Pada langkah selanjutnya, kita akan melanjutkan ke menandatangani permintaan penandatanganan sertifikat menggunakan kunci privat dari Server CA.

(Opsional) — Menandatangani CSR

Pada langkah sebelumnya, Anda membuat permintaan sertifikat latihan dan kunci untuk server fiksi. Anda menyalinnya ke direktori /tmp pada server CA, yang mengemulasi proses yang Anda akan gunakan jika Anda memiliki klien atau server nyata yang mengirimi Anda permintaan CSR yang perlu ditandatangani.

Melanjutkan skenario fiksi, sekarang Server CA perlu mengimpor sertifikat latihan dan menandatanganinya. Setelah permintaan sertifikat divalidasi oleh CA dan dikembalikan ke server, klien yang memercayai Otoritas Sertifikat juga akan dapat memercayai sertifikat yang baru diterbitkan.

Karena kita akan beroperasi di dalam PKI dari CA tempat utilitas easy-rsa tersedia, langkah-langkah penandatanganan akan menggunakan utilitas easy-rsa untuk memudahkan, dibanding menggunakan openssl secara langsung seperti yang kita lakukan pada contoh sebelumnya.

Langkah pertama untuk menandatangani CSR fiksi ini adalah mengimpor permintaan sertifikat menggunakan skrip easy-rsa:

  1. cd ~/easy-rsa
  2. ./easyrsa import-req /tmp/sammy-server.req sammy-server
Output
. . . The request has been successfully imported with a short name of: sammy-server You may now use this name to perform signing operations on this request.

Sekarang Anda dapat menandatangani permintaan itu dengan menjalankan skrip easyrsa menggunakan opsi sign-req, diikuti oleh jenis permintaan dan Nama Umum yang disertakan di dalam CSR. Jenis permintaan dapat berupa salah satu dari client, server, atau ca. Karena kita sedang berlatih dengan sertifikat untuk server fiksi, pastikan untuk menggunakan jenis permintaan server:

  1. ./easyrsa sign-req server sammy-server

Pada keluaran, Anda akan diminta memverifikasi bahwa permintaan itu berasal dari sumber tepercaya. Ketik yes, lalu tekan ENTER untuk mengonfirmasi ini:

Output
You are about to sign the following certificate. Please check over the details shown below for accuracy. Note that this request has not been cryptographically verified. Please be sure it came from a trusted source or that you have verified the request checksum with the sender. Request subject, to be signed as a server certificate for 3650 days: subject= commonName = sammy-server Type the word 'yes' to continue, or any other input to abort. Confirm request details: yes . . . Certificate created at: /home/sammy/easy-rsa/pki/issued/sammy-server.crt

Jika Anda mengenkripsi kunci CA, Anda akan diminta memasukkan kata sandi pada titik ini.

Dengan selesainya langkah-langkah ini, Anda telah menandatangani CSR sammy-server.req menggunakan kunci privat dari Server CA dalam /home/sammy/easy-rsa/pki/private/ca.key. Berkas sammy-server.crt yang dihasilkan memuat kunci enkripsi publik dari server latihan serta tanda tangan baru dari server CA. Maksud dari tanda tangan adalah memberi tahu siapa pun yang memercayai CA bahwa mereka juga dapat memercayai sertifikat sammy-server.

Jika permintaan ini benar-benar untuk server web atau server VPN, langkah terakhir pada Server CA adalah mendistribusikan berkas sammy-server.crt dan ca.crt yang baru dari Server CA ke server jauh yang membuat permintaan CA:

  1. scp pki/issued/sammy-server.crt sammy@your_server_ip:/tmp
  2. scp pki/ca.crt sammy@your_server_ip:/tmp

Pada titik ini, Anda dapat menggunakan sertifikat yang diterbitkan dengan sesuatu seperti server web, VPN, alat manajemen konfigurasi, sistem basis data, atau untuk autentikasi klien.

(Opsional) — Mencabut Sertifikat

Terkadang, Anda mungkin perlu mencabut sertifikat untuk mencegah pengguna atau server menggunakannya. Mungkin laptop seseorang dicuri, server web bocor, atau karyawan maupun kontraktor telah meninggalkan organisasi Anda.

Untuk mencabut sertifikat, proses umum mengikuti langkah-langkah ini:

  1. Cabut sertifikat dengan perintah ./easyrsa revoke client_name.
  2. Buat CRL baru dengan perintah ./easyrsa gen-crl.
  3. Transfer berkas crl.pem yang diperbarui ke server yang bergantung pada CA Anda, dan pada sistem itu, salinlah ke direktori yang diperlukan atau direktori untuk program-program yang merujuk kepadanya.
  4. Mulai ulang layanan apa pun yang menggunakan CA dan berkas CRL Anda.

Anda dapat menggunakan proses ini untuk mencabut sertifikat apa pun yang Anda telah terbitkan sebelumnya kapan saja. Kita akan membahas setiap langkah secara detail pada bagian berikut, mulai dari perintah revoke.

Mencabut Sertifikat

Untuk mencabut sertifikat, bernavigasilah ke direktori easy-rsa di server CA Anda:

  1. cd ~/easy-rsa

Selanjutnya, jalankan skrip easyrsa dengan opsi revoke, diikuti dengan nama klien yang Anda ingin cabut. Mengikuti contoh latihan di atas, Nama Umum sertifikat adalah sammy-server:

  1. ./easyrsa revoke sammy-server

Ini akan meminta Anda untuk mengonfirmasi pencabutan dengan mengetikyes:

Output
Please confirm you wish to revoke the certificate with the following subject: subject= commonName = sammy-server Type the word 'yes' to continue, or any other input to abort. Continue with revocation: yes . . . Revoking Certificate 8348B3F146A765581946040D5C4D590A . . .

Perhatikan nilai yang disorot pada baris Revoking Certificate. Nilai ini adalah nomor seri unik dari sertifikat yang sedang dicabut. Jika Anda ingin memeriksa daftar pencabutan pada langkah terakhir dari bagian ini untuk memverifikasi bahwa sudah sertifikat berada di dalamnya, Anda akan membutuhkan nilai ini.

Setelah mengonfirmasi tindakan, CA akan mencabut sertifikat. Namun, sistem jauh yang bergantung pada CA tidak memiliki cara untuk memeriksa apakah ada sertifikat yang telah dicabut. Pengguna dan server masih akan dapat menggunakan sertifikat sampai Daftar Pencabutan Sertifikat (CRL) dari CA diedarkan ke semua sistem yang bergantung pada CA itu.

Pada langkah selanjutnya, Anda akan membuat CRL atau memperbarui berkas crl.pem yang sudah ada.

Membuat Daftar Pencabutan Sertifikat

Karena kini Anda telah mencabut sertifikat, penting untuk memperbarui daftar sertifikat yang dicabut pada server CA Anda. Setelah Anda memiliki daftar pencabutan yang diperbarui, Anda akan dapat memberi tahu pengguna dan sistem yang memiliki sertifikat valid di CA Anda.

Untuk membuat CRL, jalankan perintah easy-rsa dengan opsi gen-crl saat masih di dalam direktori ~/easy-rsa:

  1. ./easyrsa gen-crl

Jika Anda telah menggunakan frasa sandi saat membuat berkas ca.key, Anda akan diminta untuk memasukkannya. Perintah gen-crl akan membuat berkas yang bernama crl.pem, yang memuat daftar sertifikat yang dicabut yang telah diperbarui untuk CA itu.

Selanjutnya, Anda perlu mentransfer berkas crl.pem yang diperbarui ke semua server dan klien yang bergantung pada CA ini setiap kali Anda menjalankan perintah gen-crl. Jika tidak, klien dan sistem akan masih dapat mengakses layanan dan sistem yang menggunakan CA Anda, karena layanan tersebut perlu mengetahui status sertifikat yang telah dicabut.

Mentransfer Daftar Pencabutan Sertifikat

Karena kini Anda telah membuat CRL pada server CA, Anda perlu mentransfernya ke sistem jauh yang bergantung pada CA Anda. Untuk mentransfer berkas ini ke server, Anda dapat menggunakan perintah scp.

Catatan: Tutorial ini menjelaskan cara membuat dan mendistribusikan CRL secara manual. Walaupun ada metode yang lebih kuat dan otomatis untuk mendistribusikan dan memeriksa daftar pencabutan seperti OCSP-Stapling, mengonfigurasi metode tersebut tidak termasuk dalam cakupan artikel ini.

Pastikan Anda log masuk ke server CA Anda sebagai pengguna non-root dan jalankan berikut ini, mengganti nama IP server atau nama DNS Anda sebagai pengganti your_server_ip:

  1. scp ~/easy-rsa/pki/crl.pem sammy@your_server_ip:/tmp

Kini setelah berkas tersebut berada di sistem jauh, langkah terakhir adalah memperbarui layanan apa pun dengan salinan baru dari daftar pencabutan.

Memperbarui Layanan yang Mendukung CRL

Membuat daftar langkah-langkah yang Anda perlu gunakan untuk memperbarui layanan yang menggunakan berkas crl.pem tidak termasuk dalam cakupan tutorial ini. Secara umum, Anda akan perlu menyalin berkas crl.pem ke lokasi yang diharapkan layanan, lalu memulai ulang menggunakan systemctl.

Setelah Anda memperbarui layanan Anda dengan berkas crl.pem yang baru, layanan Anda akan dapat menolak koneksi dari klien atau server yang menggunakan sertifikat telah dicabut.

Memeriksa dan Memverifikasi Konfigurasi CRL

Jika Anda ingin memeriksa berkas CRL, misalnya untuk mengonfirmasi daftar sertifikat yang sudah dicabut, gunakan perintah openssl berikut ini dari dalam direktori easy-rsa pada server CA Anda:

  1. cd ~/easy-rsa
  2. openssl crl -in pki/crl.pem -noout -text

Anda juga dapat menjalankan perintah ini pada server atau sistem apa pun yang telah menginstal alat openssl dengan salinan berkas crl.pem. Sebagai contoh, jika Anda mentransfer berkas crl.pem ke sistem kedua dan ingin memverifikasi bahwa sertifikat sammy-server sudah dicabut, Anda dapat menggunakan perintah openssl seperti berikut ini, mengganti nomor seri yang Anda catat sebelumnya ketika Anda mencabut sertifikat sebagai pengganti yang disorot di sini:

  1. openssl crl -in /tmp/crl.pem -noout -text |grep -A 1 8348B3F146A765581946040D5C4D590A
Output
Serial Number: 8348B3F146A765581946040D5C4D590A Revocation Date: Apr 1 20:48:02 2020 GMT

Perhatikan bagaimana perintah grep digunakan untuk memeriksa nomor seri unik yang Anda catat dalam langkah pencabutan. Sekarang Anda dapat memverifikasi konten dari Daftar Pencabutan Sertifikat Anda pada sistem apa pun yang bergantung padanya untuk membatasi akses ke pengguna dan layanan.

Kesimpulan

Dalam tutorial ini, Anda telah membuat Otoritas Sertifikat privat menggunakan paket Easy-RSA pada server mandiri Ubuntu 20.04. Anda telah mempelajari cara kerja model kepercayaan di antara pihak-pihak yang bergantung pada CA. Anda juga telah membuat dan menandatangani Permintaan Penandatanganan Sertifikat (CSR) untuk server latihan, lalu mempelajari cara mencabut sertifikat. Terakhir, Anda telah mempelajari cara membuat dan mendistribusikan Daftar Pencabutan Sertifikat (CRL) untuk sistem apa pun yang bergantung pada CA Anda untuk memastikan bahwa pengguna atau server yang tidak boleh mengakses layanan tersebut sudah dicegah untuk melakukan hal itu.

Sekarang, Anda dapat menerbitkan sertifikat untuk pengguna dan menggunakannya dengan layanan seperti OpenVPN. Anda juga dapat menggunakan CA untuk mengonfigurasi pengembangan dan penahapan server web dengan sertifikat untuk mengamankan lingkungan nonproduksi Anda. Menggunakan CA dengan sertifikat TLS selama pengembangan dapat membantu memastikan bahwa kode dan lingkungan Anda cocok dengan lingkungan produksi Anda semirip mungkin.

Jika Anda ingin mempelajari lebih lanjut tentang cara menggunakan OpenSSL, tutorial Esensial OpenSSL: Bekerja dengan Sertifikat SSL, Kunci Privat, dan CSR dari kami memiliki banyak informasi tambahan untuk membantu Anda lebih memahami dasar-dasar OpenSSL.

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about our products

About the authors

Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Become a contributor for community

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

DigitalOcean Documentation

Full documentation for every DigitalOcean product.

Resources for startups and SMBs

The Wave has everything you need to know about building a business, from raising funding to marketing your product.

Get our newsletter

Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.

New accounts only. By submitting your email you agree to our Privacy Policy

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.