GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Membuat Otoritas Sertifikat (CA) di Ubuntu 20.04

Certificate Authority (CA) adalah entitas yang bertanggung jawab untuk menerbitkan sertifikat digital untuk membuat komunikasi menjadi aman. Bertindak sebagai pihak ketiga yang terpercaya bagi pemilik sertifikat dan pihak yang mengandalkan sertifikat.

Entitas Otoritas Sertifikat dapat berupa publik atau swasta. CA publik biasanya digunakan untuk memverifikasi identitas situs web dan CA pribadi digunakan untuk membuat sertifikat untuk VPN Klien-ke-Situs, pengguna, server internal, atau program dan layanan individual dalam infrastruktur Anda seperti server web lokal.

Dalam tutorial ini, kita belajar cara membuat otoritas sertifikat pribadi (CA) di Ubuntu 20.04 . Di sini kami menggunakan easy-rsa Utilitas CLI untuk membangun dan mengelola Server CA.

Prasyarat

  • Sebuah node dengan Ubuntu 20.04 untuk meng-host CA Server
  • Pengguna dengan hak istimewa sudo

Langkah 1:Perbarui sistem Anda

Pertama, perbarui sistem Ubuntu Anda, jalankan perintah berikut:

apt update

Anda dapat melewati langkah ini jika Anda menginstal easy-rsa dari repo resmi.

Langkah 2:Instal Easy-RSA di server CA

Easy-RSA adalah alat baris perintah yang secara signifikan memfasilitasi pembentukan otoritas sertifikat (CA) dan pengelolaan sertifikat. Ini menghasilkan kunci pribadi dan sertifikat root publik.

Easy-RSA tersedia di repositori apt default. Untuk menginstal versi terbaru dari repositori resmi GitHub easy-rsa.

Unduh alat manajemen Easy-RSA PKI dari Github:

wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.8/EasyRSA-3.0.8.tgz

Di sini telah mengunduh versi 3.0.8 . Sekarang mari kita pindahkan file ke /opt map

sudo mv EasyRSA-3.0.8.tgz /opt

Sekarang ubah direktori ke /opt:

cd /opt

Jalankan perintah berikut untuk membuka kompres file .tgz:

sudo tar xvf EasyRSA-3.0.8.tgz

Ganti nama direktori menggunakan perintah mv:

sudo mv EasyRSA-3.0.8 easy-rsa

Sekarang jadikan pengguna non-root sebagai pemilik direktori:

sudo chown -R franck:franck easy-rsa/ 

Batasi akses ke direktori PKI, hanya untuk pemiliknya:

sudo chmod 700 easy-rsa

Langkah 3:Siapkan Server CA

Di sini kita akan menyiapkan direktori infrastruktur kunci publik dan membuat sertifikat publik/pribadi untuk server CA.

Sekarang ubah direktori menjadi easy-rsa yang telah dibuat sebelumnya:

cd easy-rsa

Kami akan membuat vars file yang akan digunakan untuk menyimpan informasi organisasi

$ cp vars.example vars

Sekarang tambahkan informasi organisasi di akhir file

$ vim vars
set_var EASYRSA_REQ_COUNTRY    "CM"
set_var EASYRSA_REQ_PROVINCE   "Centre"
set_var EASYRSA_REQ_CITY       "Yaounde"
set_var EASYRSA_REQ_ORG        "LINUXSHARE"
set_var EASYRSA_REQ_EMAIL      "[email protected]"
set_var EASYRSA_REQ_OU         "Com"
set_var EASYRSA_ALGO           "ec"
set_var EASYRSA_DIGEST         "sha512"

Sekarang kita akan menginisialisasi direktori Infrastruktur Kunci Publik:

$ ./easyrsa init-pki
Note: using Easy-RSA configuration from: /opt/easy-rsa/vars
 init-pki complete; you may now create a CA or requests.
 Your newly created PKI dir is: /opt/easy-rsa/pki

Untuk menghasilkan publik root dan pasangan kunci pribadi untuk server CA, ketik:

$ ./easyrsa build-ca
Note: using Easy-RSA configuration from: /opt/easy-rsa/vars
 Using SSL: openssl OpenSSL 1.1.1f  31 Mar 2020
 Enter New CA Key Passphrase: 
 Re-Enter New CA Key Passphrase: 
 read EC key
 writing EC key
 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.
 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:
 /opt/easy-rsa/pki/ca.crt

Anda akan diminta memasukkan frasa sandi untuk pasangan kunci kapan pun Anda perlu menandatangani atau mencabut sertifikat. Anda juga akan ditanya Common Name (CN) untuk CA Anda, Anda dapat menggunakan yang default jika Anda mau.

Operasi akan membuat dua file utama:

  • Sertifikat publik file ca.crt file yang akan digunakan server dan klien untuk memverifikasi bahwa mereka berada di batas kepercayaan yang sama
  • Kunci pribadi file ca.key di pki/private direktori yang digunakan CA untuk menandatangani sertifikat server dan klien

Langkah 4:Impor sertifikat publik CA

Sekarang kami mendapatkan sertifikat publik yang dihasilkan, kami perlu mengimpornya ke server lain.

Masuk ke server tempat Anda ingin mengimpor sertifikat, lalu lakukan salinan jarak jauh ca.crt file dari server CA.

scp [email protected]:/opt/easy-rsa/pki/ca.crt
The authenticity of host 'X.Y.Z.T (X.Y.Z.T)' can't be established.
 ECDSA key fingerprint is SHA256:ffUgP5/d0Z3miOKqxBVoF9JbFvIZFs/gxr7ESBZ0kmQ.
 Are you sure you want to continue connecting (yes/no)? yes
 Warning: Permanently added '139.177.204.145' (ECDSA) to the list of known hosts.
 [email protected]'s password: 
 ca.crt                                                                                                           100%  749     2.4KB/s   00:00

Pindahkan file sertifikat ke /usr/local/share/ca-certificates/ direktori:

sudo mv ca.crt /usr/local/share/ca-certificates/

Sekarang impor sertifikat CA Server menggunakan perintah berikut:

sudo update-ca-certificates
Updating certificates in /etc/ssl/certs…
1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d…
done.

Dengan itu, server Anda sekarang akan mempercayai sertifikat yang telah ditandatangani oleh server CA Anda.

Langkah 5:Buat permintaan sertifikat server dan kunci pribadi

Kami dapat membuat beberapa Permintaan Penandatanganan Sertifikat (CSR) di server yang berbeda agar CA kami menandatangani permintaan tersebut.

Kami akan menggunakan OpenSSL untuk membuat file CSR. Jika OpenSSL tidak diinstal, gunakan perintah berikut untuk menginstalnya:

sudo apt install openssl

Buat direktori bernama server1-csr untuk menyimpan CSR dan kunci pribadi

mkdir server1-csr

Ubah ke direktori server1-csr

cd server1-csr

Sekarang buat kunci pribadi menggunakan OpenSSL:

openssl genrsa -out server1.key
Generating RSA private key, 2048 bit long modulus (2 primes)
..........+++++
..................................................+++++
e is 65537 (0x010001)

Anda dapat membuat CSR yang sesuai menggunakan kunci yang dibuat:

$ openssl req -new -key server1.key -out server1.req
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) [AU]:CM
State or Province Name (full name) [Some-State]:CE
Locality Name (eg, city) []:Yaounde
Organization Name (eg, company) [Internet Widgits Pty Ltd]:LinuxShare
Organizational Unit Name (eg, section) []:Tech-B
Common Name (e.g. server FQDN or YOUR name) []:server1
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: 
An optional company name []:

Sekarang Anda perlu menyalin file CSR ke server CA:

$ scp server1.req scp [email protected]:/tmp/server1.req

Langkah 6:Tandatangani CSR Server di server CA

CSR yang dihasilkan harus ditandatangani oleh server CA. Untuk itu pindah dulu ke direktori easy-rsa untuk mengimpor permintaan tanda sertifikat dari server.

./easyrsa import-req /opt/sign-cert/server1.req server1
Note: using Easy-RSA configuration from: /opt/easy-rsa/vars
Using SSL: openssl OpenSSL 1.1.1f  31 Mar 2020
The request has been successfully imported with a short name of: server1
You may now use this name to perform signing operations on this request.

Sekarang tandatangani CSR menggunakan perintah berikut:

./easyrsa sign-req server server1
Note: using Easy-RSA configuration from: /opt/easy-rsa/vars
 Using SSL: openssl OpenSSL 1.1.1f  31 Mar 2020
 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 825 days:
 subject=
     countryName               = CM
     stateOrProvinceName       = CE
     localityName              = Yaounde
     organizationName          = LinuxShare
     organizationalUnitName    = Tech-B
     commonName                = server1
 Type the word 'yes' to continue, or any other input to abort.
   Confirm request details: yes
 Using configuration from /opt/easy-rsa/pki/easy-rsa-161486.BI2HwH/tmp.lIqZoF
 Enter pass phrase for /opt/easy-rsa/pki/private/ca.key:
 Check that the request matches the signature
 Signature ok
 The Subject's Distinguished Name is as follows
 countryName           :PRINTABLE:'CM'
 stateOrProvinceName   :ASN.1 12:'CE'
 localityName          :ASN.1 12:'Yaounde'
 organizationName      :ASN.1 12:'LinuxShare'
 organizationalUnitName:ASN.1 12:'Tech-B'
 commonName            :ASN.1 12:'server1'
 Certificate is to be certified until Jan  5 16:57:26 2024 GMT (825 days)
 Write out database with 1 new entries
 Data Base Updated
 Certificate created at: /opt/easy-rsa/pki/issued/server1.crt

Dari output Anda dapat melihat sertifikat yang dikeluarkan di bawah direktori /opt/easy-rsa/pki/issued/. Anda juga dapat memverifikasi sertifikat dengan mencantumkannya:

$ ls -l /opt/easy-rsa/pki/issued

Keluaran:

total 4
 -rw------- 1 franck franck 3996 Oct  2 16:57 server1.crt

Dengan semua langkah tersebut, Anda dapat mengelola sendiri sertifikat untuk server internal Anda. Dengan server CA, Anda dapat menandatangani sertifikat untuk server web atau terowongan VPN misalnya dengan OpenVPN.

Catatan:Untuk alasan keamanan, disarankan untuk tidak menjalankan layanan lain di Server CA. Seharusnya hanya digunakan untuk mengimpor, menandatangani, dan mencabut permintaan sertifikat sebagai server yang berdiri sendiri.

Kesimpulan

Dalam tutorial ini, kita belajar cara membuat otoritas sertifikat pribadi (CA) di Ubuntu 20.04. Terima kasih telah membaca, berikan tanggapan dan saran Anda di bagian komentar.


Ubuntu
  1. Cara Mengatur dan Mengonfigurasi Otoritas Sertifikat Di Ubuntu 22.04

  2. Cara Menginstal EPrint di Ubuntu 20.04

  3. Cara membuat Sertifikat SSL yang Ditandatangani Sendiri di Ubuntu 18.04

  1. Cara Membuat Ubuntu Live USB di Windows

  2. Cara membuat server repositori Ubuntu

  3. Cara mengatur server OpenVPN di Ubuntu 20.04

  1. Cara Membuat Pengguna Sudo di Ubuntu

  2. Cara Membuat Lingkungan Virtual Python di Ubuntu 18.04

  3. Cara menginstal ReactJS di Ubuntu 20.04