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

Photo of author

By maciekx

Konfiguracja Własnego Urzędu Certyfikacji (CA) na Systemie Debian 11

Wprowadzenie

Urząd Certyfikacji (CA) pełni kluczową rolę w infrastrukturze klucza publicznego (PKI), stanowiąc fundament bezpiecznej i zaufanej wymiany informacji w sieciach komputerowych. Jego głównym zadaniem jest wystawianie certyfikatów cyfrowych, które jednoznacznie łączą tożsamość danego podmiotu z jego kluczem publicznym. Te certyfikaty są wykorzystywane do weryfikacji tożsamości i ustanawiania bezpiecznych połączeń.

Proces konfiguracji CA na serwerze z systemem Debian 11 jest złożony, lecz całkowicie wykonalny. W niniejszym artykule przeprowadzimy Cię krok po kroku przez ten proces – od instalacji koniecznego oprogramowania po stworzenie własnego, samodzielnie podpisanego certyfikatu głównego.

Wymagane Elementy

  • Serwer Debian 11 z uprawnieniami administratora (root).
  • Zainstalowany pakiet openssl.
  • Adres IP lub nazwa domeny przypisana do serwera.

Instalacja Niezbędnego Oprogramowania

Na początek zainstaluj pakiety ca-certificates oraz openssl, korzystając z następującej komendy:


apt update
apt install ca-certificates openssl

Konfiguracja Bazy Danych

Aby efektywnie przechowywać informacje o certyfikatach, CA potrzebuje bazy danych. W tym poradniku wykorzystamy SQLite, lekką bazę danych zintegrowaną z systemem Debian 11.

  1. Utwórz folder dedykowany bazie danych:

mkdir /etc/pki/CA

  1. Stwórz bazę danych SQLite i niezbędne pliki:

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

Tworzenie Certyfikatu Głównego

Teraz przystąpimy do generowania certyfikatu głównego, który posłuży do podpisywania pozostałych certyfikatów.

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

vi /etc/pki/CA/openssl.cnf

  1. Wklej do pliku następującą treść:

[ ca ]
default_ca = CA_default

[ CA_default ]
dir               = /etc/pki/CA
# Lokalizacja plików bazy danych CA
certs             = $dir/certs
# Lokalizacja wydanych certyfikatów
crl_dir           = $dir/crl
# Lokalizacja list odwołanych certyfikatów (CRL)
new_certs_dir     = $dir/newcerts
# Lokalizacja nowych certyfikatów przed wydaniem
database          = $dir/index.txt
# Plik indeksu bazy danych
serial            = $dir/serial
# Plik numeru seryjnego
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

  1. Zapisz wprowadzone zmiany i zamknij edytor.
  2. Wygeneruj klucz prywatny dla certyfikatu głównego:

openssl genrsa -out private/cakey.pem 2048

  1. Wygeneruj żądanie podpisania certyfikatu (CSR) dla certyfikatu głównego:

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

  1. Podpisz CSR własnym kluczem, tworząc certyfikat główny:

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

Konfiguracja Serwera Apache

Jeżeli zamierzasz wykorzystywać CA do podpisywania certyfikatów SSL/TLS, konieczne jest skonfigurowanie serwera Apache w taki sposób, aby obsługiwał żądania podpisywania certyfikatów.

  1. Utwórz folder i plik konfiguracyjny dla serwera Apache:

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

  1. Dodaj do pliku następującą konfigurację:

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

  1. Aktywuj moduł SSL w Apache:

a2enmod ssl

  1. Zrestartuj serwer Apache:

systemctl restart apache2

Konfiguracja Klienta

Aby klienci mogli korzystać z certyfikatów podpisanych przez Twój CA, muszą ufać certyfikatowi głównemu CA.

  1. Skopiuj certyfikat główny CA do katalogu z zaufanymi certyfikatami na kliencie:

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

  1. Edytuj plik konfiguracyjny klienta (na przykład /etc/ssl/openssl.cnf):

vi /etc/ssl/openssl.cnf

  1. W sekcji [ CA_default ] dodaj linię:

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

  1. Zapisz zmiany i zamknij edytor.

Podsumowanie

Konfiguracja CA na Debianie 11 to proces złożony, ale niezbędny dla organizacji potrzebujących bezpiecznej i godnej zaufania infrastruktury PKI. Wykonując kroki opisane w tym artykule, zapewnisz sobie zaufane środowisko dla bezpiecznej wymiany danych i połączeń w Twojej sieci.

Najczęściej Zadawane Pytania (FAQ)

1. Czym różni się certyfikat podpisany samodzielnie od certyfikatu podpisanego przez zaufaną stronę trzecią?

Certyfikat podpisany samodzielnie jest tworzony i podpisywany przez ten sam podmiot, który go używa. Natomiast certyfikat podpisany przez zaufaną stronę trzecią wystawiany jest przez zewnętrzną, niezależną organizację, taką jak Urząd Certyfikacji (CA). Certyfikaty samodzielnie podpisane są przydatne w środowiskach testowych lub wewnętrznych, ale certyfikaty od zaufanych CA są bardziej wiarygodne i szeroko akceptowane.

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

Certyfikaty główne CA zazwyczaj odnawia się co kilka lat, na przykład co 5-10 lat. Dokładny czas trwania ważności zależy od polityki bezpieczeństwa Twojej organizacji.

3. W jaki sposób mogę unieważnić certyfikat wydany przez mój CA?

Aby unieważnić certyfikat, musisz umieścić go na liście unieważnionych certyfikatów (CRL) CA. Narzędzie OpenSSL oferuje polecenie crl do tworzenia i zarządzania listami CRL.

4. Jakie są najlepsze praktyki bezpieczeństwa przy korzystaniu z CA?

Dobre praktyki bezpieczeństwa obejmują:

  • Przechowywanie klucza prywatnego CA w bezpiecznej lokalizacji.
  • Regularne tworzenie kopii zapasowych bazy danych CA i certyfikatów.
  • Monitorowanie i sprawdzanie wydanych certyfikatów w poszukiwaniu potencjalnych luk bezpieczeństwa.
  • Przestrzeganie standardów i protokołów PKI, takich jak RFC 5280.

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

PKI to hierarchiczna struktura, która wykorzystuje kryptografię klucza publicznego do wystawiania, zarządzania i unieważniania certyfikatów cyfrowych. CA jest kluczowym elementem PKI, odpowiedzialnym za wydawanie certyfikatów i zarządzanie tożsamościami w sieci.

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

Korzyści płynące z używania CA to:

  • Zwiększone zaufanie i bezpieczeństwo w sieci.
  • Możliwość bezpiecznej wymiany danych.
  • Uproszczenie zarządzania certyfikatami cyfrowymi.
  • Zmniejszenie kosztów związanych z wydawaniem i zarządzaniem certyfikatami.

newsblog.pl