GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak vytvořit certifikační autoritu (CA) na Ubuntu 20.04

Certifikační autorita (CA) je entita odpovědná za vydávání digitálních certifikátů za účelem zabezpečení komunikace. Vystupuje jako důvěryhodná třetí strana vůči vlastníkovi certifikátu a straně, která se na certifikát spoléhá.

Entita certifikační autority může být veřejná nebo soukromá. Veřejné CA se běžně používají k ověření identity webových stránek a soukromé CA se používají pro generování certifikátů pro VPN typu Client-to-Site, uživatele, interní servery nebo jednotlivé programy a služby v rámci vaší infrastruktury, jako jsou místní webové servery.

V tomto tutoriálu se naučíme, jak vytvořit soukromou certifikační autoritu (CA) na Ubuntu 20.04 . Zde používáme easy-rsa Nástroj CLI pro sestavení a správu serveru CA.

Předpoklady

  • Uzel s Ubuntu 20.04 pro hostitele serveru CA
  • Uživatel s oprávněním sudo

Krok 1:Aktualizujte svůj systém

Nejprve aktualizujte svůj systém Ubuntu a spusťte následující příkaz:

apt update

Pokud instalujete easy-rsa z oficiálního repo, můžete tento krok přeskočit.

Krok 2:Nainstalujte Easy-RSA na server CA

Easy-RSA je nástroj příkazového řádku, který výrazně usnadňuje zřízení certifikační autority (CA) a správu certifikátů. Generuje soukromý klíč a veřejný kořenový certifikát.

Easy-RSA je k dispozici ve výchozím úložišti apt. Chcete-li si nainstalovat nejnovější verzi z oficiálního úložiště easy-rsa GitHub.

Stáhněte si nástroj pro správu PKI Easy-RSA z Github:

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

Zde máte staženou verzi 3.0.8 . Nyní přesuňte soubor do /opt složka

sudo mv EasyRSA-3.0.8.tgz /opt

Nyní změňte adresář na /opt:

cd /opt

Spusťte následující příkaz pro dekomprimaci souboru .tgz:

sudo tar xvf EasyRSA-3.0.8.tgz

Přejmenujte adresář pomocí příkazu mv:

sudo mv EasyRSA-3.0.8 easy-rsa

Nyní udělejte z uživatele bez oprávnění root vlastníka adresáře:

sudo chown -R franck:franck easy-rsa/ 

Omezit přístup k adresáři PKI, pouze pro vlastníka:

sudo chmod 700 easy-rsa

Krok 3:Nastavení serveru CA

Zde nastavíme adresář infrastruktury veřejných klíčů a vytvoříme veřejný/soukromý certifikát pro server CA.

Nyní změňte adresář na easy-rsa, který byl vytvořen dříve:

cd easy-rsa

Vytvoříme vars soubor, který bude použit k uložení informací o organizaci

$ cp vars.example vars

Nyní přidejte informace o organizaci na konec souboru

$ 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"

Nyní inicializujeme adresář Public Key Infrastructure:

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

Chcete-li vygenerovat root public a soukromý pár klíčů pro server CA zadejte:

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

Kdykoli budete potřebovat podepsat nebo zrušit certifikát, budete požádáni o zadání přístupové fráze pro pár klíčů. Budete také požádáni o Common Name (CN) pro vaši CA, pokud chcete, můžete použít výchozí.

Operace vytvoří dva hlavní soubory:

  • Veřejný certifikát soubor ca.crt soubor, který servery a klienti použijí k ověření, že jsou na stejném obvodu důvěryhodnosti
  • Soukromý klíč soubor ca.key v pki/private adresář, který CA používá k podepisování certifikátů serverů a klientů

Krok 4:Import veřejného certifikátu CA

Nyní máme vygenerovaný veřejný certifikát, musíme jej importovat na jiný server.

Přihlaste se k serveru, na který chcete certifikát importovat, a poté proveďte vzdálenou kopii ca.crt soubor ze serveru 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

Přesuňte soubor certifikátu do /usr/local/share/ca-certificates/ adresář:

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

Nyní importujte certifikát CA Serveru pomocí následujícího příkazu:

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

Díky tomu bude váš server nyní důvěřovat certifikátům, které byly podepsány vaším serverem CA.

Krok 5:Vytvořte žádost o certifikát serveru a soukromý klíč

Můžeme vytvořit některé žádosti o podpis certifikátu (CSR) na jiném serveru, aby naše certifikační autorita tyto požadavky podepsala.

K vytvoření souboru CSR použijeme OpenSSL. Pokud není OpenSSL nainstalováno, nainstalujte jej pomocí následujícího příkazu:

sudo apt install openssl

Vytvořte adresář s názvem server1-csr, kde si uchováte CSR a soukromý klíč

mkdir server1-csr

Přejděte do adresáře server1-csr

cd server1-csr

Nyní vygenerujte soukromý klíč pomocí OpenSSL:

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

Odpovídající CSR můžete vygenerovat pomocí vygenerovaného klíče:

$ 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 []:

Nyní musíte zkopírovat soubor CSR na server CA:

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

Krok 6:Podepište CSR serveru na serveru CA

Vygenerovaná CSR by měla být podepsána serverem CA. Nejprve se přesuňte do adresáře easy-rsa a importujte žádost o podpis certifikátu serveru.

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

Nyní podepište CSR pomocí následujícího příkazu:

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

Z výstupu můžete vidět certifikát vydaný v adresáři /opt/easy-rsa/pki/issued/. Certifikát můžete také ověřit jeho uvedením:

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

Výstup:

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

Pomocí všech těchto kroků jste schopni spravovat své certifikáty sami pro své interní servery. S vaším CA serverem můžete podepisovat certifikáty pro vaše webové servery nebo pro VPN tunel například s OpenVPN.

Poznámka:Z bezpečnostních důvodů se doporučuje nespouštět na serveru CA žádné další služby. Měl by být používán pouze k importu, podepisování a odvolávání požadavků na certifikáty jako samostatný server.

Závěr

V tomto tutoriálu jsme se naučili, jak vytvořit soukromou certifikační autoritu (CA) na Ubuntu 20.04. Děkujeme za přečtení, poskytněte nám prosím svůj názor a návrhy v sekci komentářů.


Ubuntu
  1. Jak nastavit a nakonfigurovat certifikační úřad na Ubuntu 22.04

  2. Jak nainstalovat EPrints na Ubuntu 20.04

  3. Jak vytvořit certifikát SSL s vlastním podpisem na Ubuntu 18.04

  1. Jak vytvořit Ubuntu Live USB ve Windows

  2. Jak vytvořit server úložiště Ubuntu

  3. Jak nastavit server OpenVPN na Ubuntu 20.04

  1. Jak vytvořit uživatele Sudo na Ubuntu

  2. Jak vytvořit virtuální prostředí Python na Ubuntu 18.04

  3. Jak nainstalovat ReactJS na Ubuntu 20.04