Jak skonfigurować urząd certyfikacji (CA) na Debianie 11

Jak skonfigurować urząd certyfikacji (CA) na Debianie 11

Wstęp

Urząd certyfikacji (CA) jest krytycznym komponentem infrastruktury klucza publicznego (PKI), która zapewnia bezpieczne i godne zaufania środowisko do wymiany danych w sieciach komputerowych. CA emituje cyfrowe certyfikaty, które wiążą tożsamość podmiotu z kluczem publicznym. Certyfikaty te są następnie wykorzystywane do weryfikacji tożsamości podmiotu i nawiązywania bezpiecznych połączeń.

Konfiguracja CA na serwerze Debian 11 jest zadaniem złożonym, ale możliwym do wykonania. W tym artykule przeprowadzimy Cię przez proces krok po kroku, od instalacji niezbędnego oprogramowania po tworzenie podpisanego przez siebie certyfikatu głównego.

Wymagania wstępne

* Serwer Debian 11 z dostępem root
* Zainstalowany pakiet openssl
* Adres IP lub nazwa domeny przypisana do serwera

Instalacja niezbędnego oprogramowania

Zacznij od zainstalowania pakietów ca-certificates i openssl za pomocą poniższej komendy:

bash
apt update
apt install ca-certificates openssl

Konfiguracja bazy danych

Aby przechowywać informacje o certyfikatach, CA będzie potrzebować bazy danych. W tym artykule użyjemy SQLite, lekkiej bazy danych wbudowanej w system Debian 11.

1. Utwórz katalog dla bazy danych:

bash
mkdir /etc/pki/CA

2. Utwórz bazę danych SQLite:

bash
cd /etc/pki/CA
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out private/cakey.pem
openssl req -config openssl.cnf -new -x509 -days 3650 -key private/cakey.pem -out cacert.pem
touch index.txt
echo 01 > serial

Utworzenie certyfikatu głównego

Teraz możemy utworzyć certyfikat główny, który będzie używany do podpisywania innych certyfikatów.

1. Utwórz plik konfiguracji dla certyfikatu głównego:

bash
vi /etc/pki/CA/openssl.cnf

2. Dodaj następującą treść do pliku:


[ ca ]
default_ca = CA_default

[ CA_default ]
dir = /etc/pki/CA

Miejsce przechowywania plików bazy danych CA

certs = $dir/certs

Miejsce przechowywania wydanych certyfikatów

crl_dir = $dir/crl

Miejsce przechowywania list odwołanych certyfikatów (CRL)

new_certs_dir = $dir/newcerts

Miejsce przechowywania nowych certyfikatów przed wydaniem

database = $dir/index.txt

Plik indeksu bazy danych

serial = $dir/serial

Plik sekwencyjny

private_key = $dir/private/cakey.pem

Klucz prywatny CA

certificate = $dir/cacert.pem

Certyfikat główny CA

default_days = 3650

Okres ważności wydawanych certyfikatów

default_crl_days = 30

Okres ważności CRL

default_md = sha256

Algorytm skrótu używany do podpisywania certyfikatów

policy = policy_match

[ policy_match ]
countryName = match
stateOrProvinceName = match
organizationName = match
organizationalUnitName = optional
commonName = supplied
emailAddress = optional

3. Zapisz i zamknij plik.

4. Wygeneruj klucz prywatny dla certyfikatu głównego:

bash
openssl genrsa -out private/cakey.pem 2048

5. Wygeneruj prośbę o podpisanie certyfikatu (CSR) dla certyfikatu głównego:

bash
openssl req -config openssl.cnf -new -key private/cakey.pem -out ca.csr

6. Podpisz CSR własnym podpisem, tworząc certyfikat główny:

bash
openssl x509 -req -days 3650 -in ca.csr -signkey private/cakey.pem -out cacert.pem

Konfiguracja serwera Apache

Jeśli chcesz używać CA do podpisywania certyfikatów SSL/TLS, musisz skonfigurować serwer Apache do słuchania żądań podpisywania certyfikatów.

1. Utwórz plik konfiguracyjny dla serwera Apache:

bash
mkdir /etc/apache2/ssl
vi /etc/apache2/ssl/ca.conf

2. Dodaj następującą treść do pliku:


DocumentRoot /etc/pki/CA
<Directory /etc/pki/CA>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

3. Włącz moduł SSL w Apache:

bash
a2enmod ssl

4. Uruchom ponownie Apache:

bash
systemctl restart apache2

Konfiguracja klienta

Aby użyć CA do podpisywania certyfikatów dla klientów, musisz skonfigurować klienta, aby ufał certyfikatowi głównemu CA.

1. Skopiuj certyfikat główny CA do katalogu zaufanych certyfikatów klienta:

bash
cp /etc/pki/CA/cacert.pem /etc/ssl/certs/

2. Edytuj plik konfiguracyjny klienta (np. /etc/ssl/openssl.cnf):

bash
vi /etc/ssl/openssl.cnf

3. Dodaj następującą linię do sekcji [ CA_default ]:


cafile = /etc/ssl/certs/cacert.pem

4. Zapisz i zamknij plik.

Wniosek

Skonfigurowanie CA na Debianie 11 jest złożonym procesem, ale koniecznym dla organizacji wymagających bezpiecznej i godnej zaufania infrastruktury PKI. Konfigurując CA zgodnie z opisanymi w tym artykule krokami, możesz zapewnić zaufane środowisko do wymiany danych i bezpiecznych połączeń w swojej sieci.

Często zadawane pytania (FAQ)

1. Jaka jest różnica między podpisanym przez siebie certyfikatem a certyfikatem podpisanym przez zaufaną stronę trzecią?

Podpisany przez siebie certyfikat jest wydawany i podpisywany przez ten sam podmiot, podczas gdy certyfikat podpisany przez zaufaną stronę trzecią jest wydawany przez niezależną organizację, taką jak Urząd Certyfikacji (CA). Podpisane przez siebie certyfikaty są często używane do celów testowych lub wewnętrznych, podczas gdy certyfikaty podpisywane przez zaufaną stronę trzecią są bardziej niezawodne i powszechnie akceptowane.

2. Jak często powinienem odnawiać certyfikat główny CA?

Certyfikaty główne CA należy odnawiać co kilka lat, na przykład co 5-10 lat. Dokładny okres ważności będzie zależał od polityki bezpieczeństwa organizacji.

3. Jak mogę anulować certyfikat wydany przez mój CA?

Aby anulować certyfikat, musisz dodać go do listy odwołanych certyfikatów (CRL) CA. Narzędzie OpenSSL zapewnia polecenie crl, które można wykorzystać do tworzenia i zarządzania listami CRL.

4. Jakie są najlepsze praktyki bezpieczeństwa dotyczące korzystania z CA?

Najlepsze praktyki bezpieczeństwa dotyczące korzystania z CA obejmują:

* Przechowywanie klucza prywatnego CA w bezpiecznym miejscu
* Regularne tworzenie kopii zapasowych bazy danych CA i certyfikatów
* Monitorowanie i przeglądanie wydanych certyfikatów pod kątem potencjalnych problemów bezpieczeństwa
* Przestrzeganie standardów i protokołów PKI, takich jak RFC 5280

5. Co to jest infrastruktura z klucza publicznego (PKI)?

PKI to hierarchiczna struktura, która wykorzystuje kryptografię klucza publicznego do wydawania, zarządzania i anulowania certyfikatów cyfrowych. CA jest głównym składnikiem PKI i odpowiada za wydawanie certyfikatów i zarządzanie tożsamościami w sieciach.

6. Jakie są korzyści z korzystania z CA?

Korzyści z korzystania z CA obejmują:

* Zapewnienie zaufania i bezpieczeństwa w sieciach
* Umożliwienie bezpiecznej wymiany danych
* Uproszczenie zarządzania certyfikatami cyfrowymi
* Redukcja kosztów związanych z wystawianiem i zarządzaniem certyfik