Како да поставите и конфигурирате авторитет за сертификати (CA) на Debian 11
Вовед
Орган за сертификати (CA) е ентитет одговорен за издавање дигитални сертификати за проверка на идентитетите на интернет. Иако јавните CA се популарен избор за потврдување на идентитетот на веб-локациите и другите услуги што се обезбедуваат на пошироката јавност, приватните CA обично се користат за затворени групи и приватни услуги.
Изградбата на приватен орган за сертификати ќе ви овозможи да конфигурирате, тестирате и стартувате програми кои бараат шифрирани врски помеѓу клиентот и серверот. Со приватен CA, можете да издавате сертификати за корисници, сервери или поединечни програми и услуги во вашата инфраструктура.
Некои примери на програми на Linux кои користат сопствен приватен CA се Puppet. Можете исто така да го конфигурирате вашиот веб-сервер да користи сертификати издадени од приватен CA со цел околините за развој и поставување да одговараат на производствените сервери кои користат TLS за шифрирање на врските.
Во ова упатство, ќе поставите приватен орган за сертификати на серверот Debian 11 и ќе генерирате и потпишете сертификат за тестирање користејќи го вашиот нов CA. Исто така, ќе го увезете јавниот сертификат на серверот CA во продавницата за сертификати на вашиот оперативен систем за да можете да го потврдите синџирот на доверба помеѓу CA и оддалечените сервери или корисници. Конечно, ќе отповикате сертификат и ќе дистрибуирате Список за отповикување сертификати (CRL) за да бидете сигурни дека само овластени корисници и системи можат да користат услуги што се потпираат на вашиот CA.
Предуслови
За да го завршите ова упатство, ќе ви требаат:
- Серверот Debian 11 ќе биде ваш посветен CA сервер. Ќе се користи само за увоз, потпишување и отповикување барања за сертификат. Не користете веќе постоечки сервер што е домаќин на јавни услуги. Идеално, вашиот CA сервер треба да биде исклучен или офлајн кога не се користи, така што неговиот приватен клуч не е толку ранлив на компромис.
- Корисник кој не е root со привилегии
sudo
. Следете го нашиот водич за почетно поставување на серверот Debian 11 за да го поставите. Поврзаното упатство ќе постави и заштитен ѕид, кој се претпоставува дека е поставен во текот на овој водич.
Забелешка: Последниот дел од ова упатство е изборен доколку сакате да дознаете за потпишување и одземање на сертификати. Ако изберете да ги завршите тие чекори за вежбање, ќе ви треба втор Debian 11 сервер или можете да го користите и вашиот сопствен локален Linux компјутер што работи со Debian или Ubuntu, или дистрибуции добиени од која било од нив.
Чекор 1 - Инсталирање Easy-RSA
Првата задача во ова упатство е да ја инсталирате алатката easy-rsa
на вашиот CA сервер. Easy-RSA е алатка за управување со авторитетот за сертификати што ќе ја користите за да генерирате приватен клуч и јавен корен сертификат, кои потоа ќе ги користите за потпишување барања од клиенти и сервери кои ќе се потпираат на вашиот CA.
Најавете се на вашиот CA сервер како корисник без корен sudo што сте го создале за време на почетните чекори за поставување и извршете го следново:
- sudo apt update
- sudo apt install easy-rsa
Ќе ви биде побарано да го преземете пакетот и да го инсталирате. Притиснете y
за да потврдите дека сакате да го инсталирате пакетот.
Во овој момент имате сè што ви треба поставено и подготвено за користење Easy-RSA. Во следниот чекор ќе создадете инфраструктура за јавен клуч, а потоа ќе започнете да го градите вашиот орган за сертификати.
Чекор 2 - Подготовка на директориум за инфраструктура со јавен клуч
Сега кога сте го инсталирале easy-rsa
, време е да креирате скелет на инфраструктура за јавен клуч (PKI) на серверот CA. Осигурете се дека сè уште сте најавени како ваш не-root корисник и креирајте директориум easy-rsa
. Проверете дали не користите sudo за да извршите некоја од следните команди, бидејќи вашиот нормален корисник треба да управува и да комуницира со CA без зголемени привилегии.
- mkdir ~/easy-rsa
Ова ќе создаде нов директориум наречен easy-rsa
во вашата домашна папка. Ќе го користиме овој директориум за да создадеме симболични врски што укажуваат на датотеките на пакетот easy-rsa
што ги инсталиравме во претходниот чекор. Овие датотеки се наоѓаат во папката /usr/share/easy-rsa
на серверот CA.
Создадете ги симболите со командата ln
:
- ln -s /usr/share/easy-rsa/* ~/easy-rsa/
Забелешка: додека другите водичи може да ви наложат да ги копирате датотеките на пакетот easy-rsa
во вашиот директориум PKI, ова упатство прифаќа пристап за символна врска. Како резултат на тоа, сите ажурирања на пакетот easy-rsa
автоматски ќе се рефлектираат во скриптите на вашиот PKI.
За да го ограничите пристапот до вашиот нов директориум PKI, проверете дали само сопственикот може да пристапи до него со помош на командата chmod
:
- chmod 700 /home/sammy/easy-rsa
Конечно, иницијализирајте го PKI во директориумот easy-rsa
:
- cd ~/easy-rsa
- ./easyrsa init-pki
Outputinit-pki complete; you may now create a CA or requests.
Your newly created PKI dir is: /home/sammy/easy-rsa/pki
Откако ќе го завршите овој дел, имате директориум кој ги содржи сите датотеки што се потребни за да се создаде авторитет за сертификати. Во следниот дел ќе креирате приватен клуч и јавен сертификат за вашиот CA.
Чекор 3 - Креирање на авторитет за сертификати
Пред да можете да ги креирате приватниот клуч и сертификатот на вашиот CA, треба да креирате и пополните датотека наречена vars
со некои стандардни вредности. Прво ќе cd
во директориумот easy-rsa
, потоа ќе ја креирате и уредувате датотеката vars
со nano
или претпочитаниот уредувач на текст:
- cd ~/easy-rsa
- nano vars
Откако ќе се отвори датотеката, залепете ги следните редови и уредете ја секоја означена вредност за да ги одрази информациите за вашата организација. Важниот дел овде е да се осигурате дека нема да оставите празна ниту една од вредностите:
~/easy-rsa/varsset_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"
Кога ќе завршите, зачувајте ја и затворете ја датотеката. Ако користите nano
, можете да го сторите тоа со притискање на CTRL+X, потоа Y и ENTER за да потврдите . Сега сте подготвени да го изградите вашиот CA.
За да го креирате парот на основниот јавен и приватен клуч за вашиот орган за сертификати, извршете ја командата ./easy-rsa
повторно, овој пат со опцијата build-ca
:
- ./easyrsa build-ca
На излезот, ќе видите неколку линии за верзијата OpenSSL и ќе ви биде побарано да внесете лозинка за вашиот пар клучеви. Бидете сигурни да изберете силна лозинка и забележете ја на безбедно место. Ќе треба да ја внесете лозинката секогаш кога ќе ви треба за да комуницирате со вашиот CA, на пример да потпишете или отповикате сертификат.
Исто така, ќе биде побарано да го потврдите Заедничкото име (CN) за вашиот CA. CN е името што се користи за упатување на оваа машина во контекст на органот за сертификати. Може да внесете која било низа знаци за заедничкото име на CA, но заради едноставност, притиснете ENTER за да го прифатите стандардното име.
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
Забелешка: ако не сакате да ви се бара лозинка секогаш кога ќе комуницирате со вашиот CA, можете да ја извршите командата build-ca
со nopass
опција, вака:
- ./easyrsa build-ca nopass
Сега имате две важни датотеки — ~/easy-rsa/pki/ca.crt
и ~/easy-rsa/pki/private/ca.key
— кои го сочинуваат јавните и приватните компоненти на органот за издавање сертификати.
-
ca.crt
е датотека со јавен сертификат на CA. Корисниците, серверите и клиентите ќе го користат овој сертификат за да потврдат дека се дел од истата мрежа на доверба. Секој корисник и сервер што го користи вашиот CA ќе треба да има копија од оваа датотека. Сите страни ќе се потпрат на јавниот сертификат за да се осигураат дека некој не се претставува како систем и не врши напад Man-in-the-middle. -
ca.key
е приватниот клуч што CA го користи за потпишување сертификати за сервери и клиенти. Ако напаѓачот добие пристап до вашиот CA и, за возврат, до вашата датотекаca.key
, ќе треба да го уништите вашиот CA. Ова е причината зошто вашата датотекаca.key
треба само да биде на вашата CA машина и зошто, идеално, вашата CA машина треба да се одржува офлајн кога не потпишувате барања за сертификати како дополнителна безбедност мерка.
Со тоа, вашиот CA е на место и е подготвен да се користи за потпишување барања за сертификати и отповикување сертификати.
Чекор 4 - Дистрибуирање на јавниот сертификат на вашиот орган за сертификати
Сега вашиот CA е конфигуриран и подготвен да дејствува како корен на доверба за сите системи што сакате да ги конфигурирате за да го користите. Можете да го додадете сертификатот на CA на вашите OpenVPN сервери, веб-сервери, сервери за пошта и така натаму. Секој корисник или сервер што треба да го потврди идентитетот на друг корисник или сервер во вашата мрежа треба да има копија од датотеката ca.crt
увезена во продавницата за сертификати на нивниот оперативен систем.
За да го увезете јавниот сертификат на CA во втор Linux систем како што е друг сервер или локален компјутер, прво земете копија од датотеката ca.crt
од вашиот CA сервер. Можете да ја користите командата cat
за да ја излезете во терминал, а потоа да ја копирате и залепите во датотека на вториот компјутер што го увезува сертификатот. Можете исто така да користите алатка како scp
или rsync
за да ја префрлите датотеката помеѓу системи. Ќе користиме копирање и залепување со nano
во овој чекор бидејќи ќе работи на сите системи.
Како ваш не-root корисник на CA серверот, извршете ја следнава команда:
- cat ~/easy-rsa/pki/ca.crt
Ќе има излез во вашиот терминал кој е сличен на следново:
Output-----BEGIN CERTIFICATE-----
MIIDSzCCAjOgAwIBAgIUcR9Crsv3FBEujrPZnZnU4nSb5TMwDQYJKoZIhvcNAQEL
BQAwFjEUMBIGA1UEAwwLRWFzeS1SU0EgQ0EwHhcNMjAwMzE4MDMxNjI2WhcNMzAw
. . .
. . .
-----END CERTIFICATE-----
Копирајте сè, вклучувајќи ги линиите -----BEGIN CERTIFICATE-----
и -----END CERTIFICATE-----
и цртичките.
На вашиот втор Linux систем користете nano
или претпочитаниот уредувач на текст за да отворите датотека наречена /tmp/ca.crt
:
- nano /tmp/ca.crt
Вметнете ја содржината што штотуку ја копиравте од серверот CA во уредникот. Кога ќе завршите, зачувајте ја и затворете ја датотеката. Ако користите nano
, можете да го сторите тоа со притискање на CTRL+X
, потоа Y
и ENTER
за да потврдите .
Сега кога имате копија од датотеката ca.crt
на вашиот втор Linux систем, време е да го увезете сертификатот во продавницата за сертификати за оперативниот систем.
На системи базирани на Debian и Ubuntu, извршете ги следните команди за да го увезете сертификатот:
- sudo cp /tmp/ca.crt /usr/local/share/ca-certificates/
- sudo update-ca-certificates
Скриптата update-ca-certificates
, која се наоѓа на /usr/sbin/update-ca-certificates
на подоцнежните системи на Debian и Ubuntu, можеби не е во на вашиот корисник ПАТ
. Или додадете /usr/sbin
на вашиот PATH
или само стартувајте /usr/sbin/update-ca-certificates
.
За да увезете сертификат на CA серверот на систем базиран на CentOS, Fedora или RedHat, копирајте ја и залепете ја содржината на датотеката на системот исто како во претходниот пример во датотека наречена /tmp/ca.crt
. Следно, ќе го копирате сертификатот во /etc/pki/ca-trust/source/anchors/
, а потоа ќе ја извршите командата update-ca-trust
.
- sudo cp /tmp/ca.crt /etc/pki/ca-trust/source/anchors/
- sudo update-ca-trust
Сега вашиот втор Linux систем ќе му верува на кој било сертификат што е потпишан од серверот CA.
Забелешка: ако ја користите вашата CA со веб-сервери и користите Firefox како прелистувач, ќе треба директно да го увезете јавниот сертификат ca.crt
во Firefox. Firefox не ја користи продавницата за сертификати на локалниот оперативен систем. За детали за тоа како да го додадете сертификатот на вашиот CA на Firefox, ве молиме погледнете ја оваа статија за поддршка од Mozilla за поставување на авторитети за сертификати (CAs) во Firefox.
Ако го користите вашиот CA за да се интегрирате со околина на Windows или десктоп компјутери, погледнете ја документацијата за тоа како да користите certutil.exe
за да инсталирате сертификат CA.
Ако го користите ова упатство како предуслов за друго упатство или сте запознаени со тоа како да потпишувате и да ги отповикате сертификатите, можете да застанете овде. Ако сакате да дознаете повеќе за тоа како да потпишувате и одземате сертификати, тогаш следниот изборен дел детално ќе го објасни секој процес.
Чекор 5 - Создавање барања за потпишување сертификат и отповикување сертификати (изборно)
Следниве делови од упатството се опционални. Ако сте ги завршиле сите претходни чекори, тогаш имате целосно конфигуриран и работен орган за сертификати што можете да го користите како предуслов за други упатства. Можете да ја увезете датотеката ca.crt
на вашиот CA и да ги потврдите сертификатите во вашата мрежа што се потпишани од вашиот CA.
Ако сакате да вежбате и да дознаете повеќе за тоа како да потпишувате барања за сертификати и како да ги отповикате сертификатите, тогаш овие изборни делови ќе објаснат како функционираат двата процеси.
Чекор 6 - Креирање и потпишување на барање за сертификат за пракса (изборно)
Сега кога имате CA подготвен за употреба, можете да вежбате генерирање приватен клуч и барање за сертификат за да се запознаете со процесот на потпишување и дистрибуција.
Барањето за потпишување сертификат (CSR) се состои од три дела: јавен клуч, идентификациони информации за системот што бара и потпис на самото барање, кое се креира со помош на приватниот клуч на страната барател. Приватниот клуч ќе се чува во тајност и ќе се користи за шифрирање на информации што секој со потпишан јавен сертификат може потоа да ги дешифрира.
Следниве чекори ќе се извршат на вашиот втор Linux систем кој работи со Debian, Ubuntu или дистрибуција што е изведена од било кој од нив. Тоа може да биде друг далечински сервер или локална Линукс машина како лаптоп или десктоп компјутер. Бидејќи easy-rsa
не е стандардно достапен на сите системи, ќе ја користиме алатката openssl
за да создадеме практични приватен клуч и сертификат.
openssl
обично се инсталира стандардно на повеќето дистрибуции на Linux, но само за да бидете сигурни, извршете го следново на вашиот систем:
- sudo apt update
- sudo apt install openssl
Кога ќе ви биде побарано да инсталирате openssl
, притиснете y
за да продолжите со чекорите за инсталација. Ова може да ги надгради вашите OpenSSL библиотеки и може да биде побарано да рестартирате некои услуги што ја користат старата OpenSSL библиотека. Изберете OK за да ги рестартирате овие услуги ако сакате.
Сега сте подготвени да креирате пракса ООП со openssl
.
Првиот чекор што треба да го завршите за да креирате ООП е генерирање на приватен клуч. За да креирате приватен клуч користејќи openssl
, креирајте директориум practice-csr
и потоа генерирајте клуч во него. Ќе го направиме ова барање за измислен сервер наречен sammy-server
, наспроти создавањето сертификат што се користи за идентификување на корисник или друга CA.
- mkdir ~/practice-csr
- cd ~/practice-csr
- openssl genrsa -out sammy-server.key
OutputGenerating RSA private key, 2048 bit long modulus (2 primes)
. . .
. . .
e is 65537 (0x010001)
Сега кога имате приватен клуч, можете да креирате соодветна ООП, повторно користејќи ја алатката openssl
. Ќе ви биде побарано да пополните голем број полиња како земја, држава и град. Можете да внесете .
ако сакате да оставите празно поле, но имајте предвид дека ако ова беше вистинска ООП, најдобро е да ги користите точните вредности за вашата локација и организација. Меѓутоа, не оставајте го Заедничкото име (CN) празно, бидејќи ова поле е задолжително и вашиот CA нема да може да го потпише сертификатот без него:
- 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 []:
Ако сакате автоматски да ги додадете тие вредности како дел од повикувањето openssl
наместо преку интерактивниот промпт, можете да го пренесете аргументот -subj
на OpenSSL. Погрижете се да ги уредите означените вредности за да одговараат на локацијата, организацијата и името на серверот за вежбање:
- openssl req -new -key sammy-server.key -out server.req -subj \
- /C=US/ST=New\ York/L=New\ York\ City/O=DigitalOcean/OU=Community/CN=sammy-server
За да ја потврдите содржината на ООП, можете да прочитате во датотека со барање со openssl
и да ги испитате полињата внатре:
- openssl req -in sammy-server.req -noout -subject
Outputsubject=C = US, ST = New York, L = New York City, O = DigitalOcean, OU = Community, CN = sammy-server
Откако ќе бидете задоволни со предметот на барањето за сертификат за вежбање, копирајте ја датотеката sammy-server.req
на вашиот CA сервер користејќи scp
:
- scp sammy-server.req sammy@your_ca_server_ip:/tmp/sammy-server.req
Во овој чекор, генериравте барање за потпишување сертификат за измислен сервер наречен sammy-server
. Во реално сценарио, барањето може да биде од нешто како веб-сервер за поставување или развој на кој му е потребен TLS сертификат за тестирање; или може да дојде од OpenVPN сервер кој бара сертификат за корисниците да можат да се поврзат со VPN. Во следниот чекор, ќе продолжиме со потпишување на барањето за потпишување сертификат користејќи го приватниот клуч на серверот CA.
Чекор 7 - Потпишување ООП (опционално)
Во претходниот чекор, креиравте барање за сертификат за вежбање и клуч за измислен сервер. Го копиравте во директориумот /tmp
на вашиот CA сервер, емулирајќи го процесот што би го користеле доколку имате вистински клиенти или сервери кои ви испраќаат барања за ООП што треба да се потпишат.
Продолжувајќи со измисленото сценарио, сега серверот CA треба да го увезе сертификатот за пракса и да го потпише. Откако барањето за сертификат ќе биде потврдено од страна на CA и ќе се пренесе назад на серверот, клиентите кои му веруваат на органот за сертификати ќе можат да му веруваат и на новоиздадениот сертификат.
Бидејќи ќе работиме во PKI на CA каде што е достапна алатката easy-rsa
, чекорите за потпишување ќе ја користат алатката easy-rsa
за да ги олеснат работите, наспроти користејќи го openssl
директно како што направивме во претходниот пример.
Првиот чекор за потпишување на измислената ООП е да го увезете барањето за сертификат користејќи ја скриптата easy-rsa
:
- cd ~/easy-rsa
- ./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.
Сега можете да го потпишете барањето со извршување на скриптата easyrsa
со опцијата sign-req
, проследено со типот на барање и Заедничкото име што е вклучено во ООП. Типот на барање може да биде еден од клиент
, сервер
или ca
. Бидејќи вежбаме со сертификат за измислен сервер, не заборавајте да го користите типот на барање сервер
:
- ./easyrsa sign-req server sammy-server
На излезот, ќе биде побарано да потврдите дека барањето доаѓа од доверлив извор. Напишете да
потоа притиснете ENTER за да го потврдите ова:
OutputYou 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
Ако сте го шифрирале вашиот CA клуч, ќе ви биде побарана лозинката во овој момент.
Со завршени тие чекори, го потпишавте sammy-server.req
ООП користејќи го приватниот клуч на серверот CA во /home/sammy/easy-rsa/pki/private/ca.key
. Добиената датотека sammy-server.crt
го содржи јавниот клуч за шифрирање на серверот за вежбање, како и нов потпис од CA серверот. Поентата на потписот е да му каже на секој што има доверба во CA дека може да му верува и на сертификатот sammy-server
.
Ако ова барање беше за вистински сервер како веб-сервер или VPN-сервер, последниот чекор на CA-серверот би бил да се дистрибуираат новите sammy-server.crt
и ca.crt
датотеки од CA серверот до оддалечениот сервер што го направи барањето за ООП:
- scp pki/issued/sammy-server.crt sammy@your_server_ip:/tmp
- scp pki/ca.crt sammy@your_server_ip:/tmp
Во овој момент, ќе можете да го користите издадениот сертификат со нешто како веб-сервер, VPN, алатка за управување со конфигурации, систем на база на податоци или за целите на автентикација на клиентот.
Чекор 8 - Отповикување на сертификат (изборно)
Повремено, можеби ќе треба да го отповикате сертификатот за да спречите корисник или сервер да го користи. Можеби нечиј лаптоп бил украден, веб-сервер бил компромитиран или некој вработен или изведувач ја напуштил вашата организација.
За да се одземе сертификат, општиот процес ги следи овие чекори:
- Отповикајте го сертификатот со командата
./easyrsa revoke client_name
. - Генерирајте нов CRL со командата
./easyrsa gen-crl
. - Префрлете ја ажурираната датотека
crl.pem
на серверот или серверите што се потпираат на вашиот CA и на тие системи копирајте ја во потребниот директориум или директориуми за програмите што се однесуваат на него. - Рестартирајте ги сите услуги што ги користат вашата CA и датотеката CRL.
Можете да го користите овој процес за да ги отповикате сите сертификати што претходно сте ги издале во секое време. Ќе го разгледаме секој чекор детално во следните делови, почнувајќи со командата отповик
.
Одземање на сертификат
За да го отповикате сертификатот, одете до директориумот easy-rsa
на вашиот CA сервер:
- cd ~/easy-rsa
Следно, извршете ја скриптата easyrsa
со опцијата revoke
, проследено со името на клиентот што сакате да го отповикате. Следејќи го примерот за пракса погоре, заедничкото име на сертификатот е sammy-server
:
- ./easyrsa revoke sammy-server
Ова ќе побара од вас да го потврдите отповикувањето со внесување да
:
OutputPlease 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
. . .
Забележете ја означената вредност на линијата Поништување на сертификат
. Оваа вредност е единствениот сериски број на сертификатот што се поништува. Ако сакате да го испитате списокот со отповикување во последниот чекор од овој дел за да потврдите дека сертификатот е во него, ќе ви треба оваа вредност.
Откако ќе го потврди дејството, CA ќе го отповика сертификатот. Сепак, далечинските системи кои се потпираат на CA немаат начин да проверат дали некој сертификат е отповикан. Корисниците и серверите сè уште ќе можат да го користат сертификатот додека списокот за отповикување сертификати (CRL) на CA не се дистрибуира до сите системи што се потпираат на CA.
Во следниот чекор ќе генерирате CRL или ќе ажурирате постоечка датотека crl.pem
.
Генерирање листа за поништување на сертификати
Сега кога сте отповикале сертификат, важно е да го ажурирате списокот со отповикани сертификати на вашиот CA сервер. Откако ќе имате ажурирана листа за отповикување, ќе можете да кажете кои корисници и системи имаат валидни сертификати во вашиот CA.
За да генерирате CRL, извршете ја командата easy-rsa
со опцијата gen-crl
додека сте во директориумот ~/easy-rsa
:
- ./easyrsa gen-crl
Ако сте користеле лозинка при креирањето на вашата датотека ca.key
, ќе ви биде побарано да ја внесете. Командата gen-crl
ќе генерира датотека наречена crl.pem
која ја содржи ажурираната листа на отповикани сертификати за таа CA.
Следно, ќе треба да ја префрлите ажурираната датотека crl.pem
на сите сервери и клиенти кои се потпираат на овој CA секогаш кога ќе ја извршите командата gen-crl
. Во спротивно, клиентите и системите сè уште ќе можат да пристапуваат до услугите и системите што го користат вашиот CA, бидејќи тие услуги треба да знаат за отповиканиот статус на сертификатот.
Пренесување листа за отповикување сертификати
Сега кога сте генерирале CRL на вашиот CA сервер, треба да го префрлите на далечински системи кои се потпираат на вашиот CA. За да ја префрлите оваа датотека на вашите сервери, можете да ја користите командата scp
.
Забелешка: Ова упатство објаснува како рачно да се генерира и дистрибуира CRL. Иако постојат поцврсти и автоматизирани методи за дистрибуција и проверка на списоците за отповикување, како што е OCSP-Stapling, конфигурирањето на тие методи е надвор од опсегот на овој напис.
Погрижете се да сте најавени на вашиот CA сервер како ваш не-root корисник и да го извршите следново, заменувајќи ја IP-а на вашиот сопствен сервер или името на DNS наместо your_server_ip
:
- scp ~/easy-rsa/pki/crl.pem sammy@your_server_ip:/tmp
Сега кога датотеката е на далечинскиот систем, последниот чекор е да ги ажурирате сите услуги со новата копија од списокот за отповикување.
Ажурирање на услуги кои поддржуваат CRL
Набројувањето на чекорите што треба да ги користите за ажурирање на услугите што ја користат датотеката crl.pem
е надвор од опсегот на ова упатство. Општо земено, ќе треба да ја копирате датотеката crl.pem
на локацијата што ја очекува услугата и потоа да ја рестартирате користејќи systemctl
.
Откако ќе ги ажурирате вашите услуги со новата датотека crl.pem
, вашите услуги ќе можат да ги отфрлат врските од клиентите или серверите што користат отповикан сертификат.
Испитување и потврдување на содржината на CRL
Ако сакате да испитате CRL-датотека, на пример да потврдите листа на отповикани сертификати, користете ја следнава команда openssl
од вашиот директориум easy-rsa
на вашиот CA сервер :
- cd ~/easy-rsa
- openssl crl -in pki/crl.pem -noout -text
Оваа команда можете да ја извршите и на кој било сервер или систем што ја има инсталирано алатката openssl
со копија од датотеката crl.pem
. На пример, ако сте ја префрлиле датотеката crl.pem
на вашиот втор систем и сакате да потврдите дека сертификатот sammy-server
е отповикан, можете да користите openssl
команда како следнава, заменувајќи го серискиот број што го забележавте претходно кога го укинавте сертификатот наместо означениот овде:
- 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
Забележете како се користи командата grep
за проверка на единствениот сериски број што сте го забележале во чекорот за отповикување. Сега можете да ја потврдите содржината на вашата листа за отповикување сертификати на кој било систем што се потпира на него за да го ограничи пристапот до корисниците и услугите.
Заклучок
Во ова упатство создадовте приватен авторитет за сертификати користејќи го Easy-RSA пакетот на самостоен Debian 11 сервер. Научивте како функционира моделот на доверба помеѓу страните кои се потпираат на CA. Исто така, креиравте и потпишавте барање за потпишување сертификат (CSR) за сервер за вежбање, а потоа укинавте сертификат. Конечно, генериравте и дистрибуиравте Список за отповикување сертификати (CRL) за кој било систем што се потпира на вашиот CA за да се осигура дека корисниците или серверите кои не треба да пристапуваат до услугите се спречени да го прават тоа.
Сега можете да издавате сертификати за корисници и да ги користите со услуги како OpenVPN. Можете исто така да го користите вашиот CA за да ги конфигурирате веб-серверите за развој и поставување со сертификати за да ги обезбедите вашите непроизводствени средини. Користењето CA со TLS сертификати за време на развојот може да помогне да се осигурате дека вашиот код и околини се совпаѓаат со вашата производна средина што е можно поблиску.
Ако сакате да дознаете повеќе за тоа како да користите OpenSSL, нашиот туторијал OpenSSL Essentials: Работа со SSL сертификати, приватни клучеви и CSR има многу дополнителни информации кои ќе ви помогнат повеќе да се запознаете со основите на OpenSSL.