Instrukcja instalacji i użytkowania aplikacji Urzędu Certyfikacyjnego

Daniel Rychcik
20-04-2000

0. Wstęp

Dokument ten zawiera instrukcję instalacji i użytkowania głównej aplikacji urzędu certyfikacyjnego. Nie opisujemy w nim aspektów teoretycznych PKI i naszej struktury nazewnictwa - jest to po prostu instrukcja aplikacji.

Używana jest tu w wielu miejscach skrótowa terminologia PKI - w razie kłopotów ze zrozumieniem niektórych skrótów zapraszamy do słownika.

1. Instalacja

Proces tworzenia i instalacji oprogramowania Urzędu Certyfikatyjnego można podzielić na kilka etapów:

1.1. Uzyskanie certyfikatu CA

Na początku należy ustalić w jakim miejscu używanej już hierarchii nazewnictwa umieszczone będzie nowe CA. Ustala to z reguły nadrzędny Urząd Certyfikacyjny, który wydaje certyfikat dla CA. Musimy zatem przydzielić sobie nazwę OU (Organizational Unit) i uzyskać od nadrzędnego CA certyfikat CA niższego rzędu wystawiony na odpowiedni DN.

Jeżeli tworzymy nowy główny urząd certyfikacyjny to ten etap pomijamy (certyfikat główny wygeneruje instalator).

1.2. Instalacja pakietów pomocniczych

Przed instalacją właściwej aplikacji należy zainstalować i uruchomić oprogramowanie pomocnicze. Szczegółowa instrukcja, jak to zrobić, znajduje się tutaj.

1.3. Instalacja aplikacji

Na początku należy rozpakować plik ca-1.0.tar.gz i wejść do nowo powstałego katalogu ca-1.0. Następnie należy uruchomić program instalacyjny poleceniem ./install. Wszystkie te działania należy wykonywać z poziomu administratora.

Przy instalacji użytkownik otrzymuje serię pytań:


  # ./install

  ---------------------------------------
     Urzad certyfikacyjny - instalacja
  ---------------------------------------

  Podaj lokalizację polecenia openssl: /usr/local/bin/openssl
  Podaj katalog glowny CA : /usr/local/UMK-CA
  Podaj katalog dokumentow HTTP: /usr/local/apache/htdocs
  Katalog /usr/local/apache/htdocs istnieje - OK
  Podaj nazwe uzytkownika CA: admin
  Podaj nazwe pliku PKCS#12 z kluczem CA (pusta=root CA):

W tym momencie możemy podać nazwę pliku z certyfikatem CA otrzymanym z urzędu nadrzędnego - nie będą wtedy zadawane dodatkowe pytania o certyfikat, lub nacisnąć ENTER - stworzony zostanie wtedy nowy główny CA. Wybierzmy tą drugą możliwość:

  Generowanie certyfikatu self-signed dla nowego CA

   Podaj dane niezbedne do zidentyfikowania CA:
 
   Kraj (2 litery):                PL
   Miasto:                         Torun
   Organizacja:                    UMK
   Symbol urzedu certyfikacyjnego: CA-UMK
   Pelna nazwa urzedu:             Urzad Certyfikacyjny UMK
   Adres DNS dla serwera CA:       ca.torun.net.pl
   E-mail administratora urzedu:   admin@ca.torun.net.pl

  Czy dane sa prawidlowe?          t

  Podaj nowe haslo klucza prywatnego PEM: *******
  Na ile dni wygenerowac certyfikat CA? 365
  URL wystawianych certyfikatow: http://ca.torun.net.pl/

Po zakończeniu części instalacji związanej z certyfikatem CA następują pytania związane z generowaniem certyfikatu klienta SSL dla administratora. Praca z aplikacją będzie możliwa wyłącznie przy pomocy tego certyfikatu.

  Generowanie certyfikatu administratora CA

  Podaj nowe haslo klucza prywatnego administratora: *******
  Podaj adres email administratora: admin@ca.torun.net.pl
  Podaj imie i nazwisko administratora: Daniel Rychcik

Ostatnim etapem jest wygenerowanie certyfikatu SSL dla serwera Apache który udostępnia aplikację. Ponieważ wszystkie niezbędne dane zostały już podane wcześniej, program instalacyjny pyta tylko o hasło klucza prywatnego serwera:

  Generowanie certyfikatu serwera HTTPS

  Podaj nowe haslo klucza prywatnego serwera: ********

  Instalacja urzedu certyfikacyjnego zakonczyla sie pomyslnie

    Certyfikat managera CA: /usr/local/UMK-CA/private/manager.p12
    Certyfikat serwera WWW: /usr/local/UMK-CA/certs/server.crt
    Klucz prywatny serwera: /usr/local/UMK-CA/private/server.key

1.4. Konfiguracja systemu

Do poprawnego działania aplikacji konieczna jest pewna ingerencja w pliki konfiguracyjne serwera WWW. Oczywiście wymagane jest, aby serwer obsługiwał połączenia szyfrowane, natomiast dodatkowym wymaganiem jest zdefiniowanie odpowiednich praw dostępu do katalogu z plikami wykonywalnymi aplikacji. W praktyce sprowadza się to do:

  • Skopiowania wygenerowanego przy instalacji certyfikatu serwera WWW do katalogu /usr/local/apache/conf/ssl.crt, a klucza prywatnego do /usr/local/apache/conf/ssl.crt.
  • Skonfigurowanie Apache tak, aby używał tych certyfikatów do połączeń HTTPS (opcje w httpd.conf - dokładnie opisane w stosownym dokumencie.
  • Zdefiniowania uprawnień do katalogu skryptów aplikacji tak, aby tylko użytkownik Manager posiadający pozostałe pola DN o wartościach identycznych jak w certyfikacie CA miał do nich dostęp, i to wyłącznie przez połączenie SSL.
  • Administrator CA powinien załadować do swojej przeglądarki WWW certyfikat klienta SSL wygenerowany przez instalator.
  • Należy zainicjować bazę LDAP w następujący sposób:
    • Skonfigurować slapd (plik slapd.conf) według instrukcji
    • Stworzyć plik manager.ldif postaci:
      dn: cn=Manager, ou=WMiI, o=UMK, c=PL
      objectClass: organizationalperson
      cn: Manager
      userPassword: secret
      
    • Wykonać polecenie: ldif2ldbm -i Manager.ldif
    • Wystartować serwer slapd
    • Utworzyć plik umk.ldif postaci:
      dn: ou=WMiI, o=UMK, c=PL
      objectclass: organization
      ou: Wydzial Matematyki i Informatyki
      o: Uniwersytet Mikolaja Kopernika
      
    • Wykonać polecenie:
      ldapadd -p6666 -D "cn=Manager, ou=WMiI, o=UMK, c=PL 
              -w secret -f umk.ldif
      

2. Użytkowanie aplikacji

Uruchomienie aplikacji polega na wpisaniu w przeglądarce adresu URL pod którym została zainstalowana - w naszym przypadku jest to np. https://ca.torun.net.pl/ca.php. Po przejsciu wszystkich formalności związanych z autentyfikacją klienta (należy wybrać jako aktywny klucz otrzymany przy instalacji aplikaci) otrzymujemy ekran startowy:

Korzystając z przycisków umieszczonych po lewej stronie możemy uruchamiać główne funkcje programu:

2.1. Generowanie certyfikatów

Po wybraniu pierwszej opcji otrzymujemy ekran z listą typów certyfikatów które możemy tworzyć. Przypomnijmy pokrótce ich zastosowanie:

  • email - certyfikat klienta bezpiecznej poczty elektronicznej.
  • client - certyfikat klienta bezpiecznych usług WWW.
  • server - certyfikat serwera SSL.
  • sslCA, emailCA, ssl_emailCA - certyfikaty podrzędnych urzędów certyfikacyjnych uprawnionych do wydawania określonych typów certyfikatów.

Po wybraniu typu certyfikatu wpisujemy właściwe dane certyfikowanej osoby/serwera. Pewne pola mają ustalone wartości domyślne na danym poziomie PKI i nie można ich zmieniać (O i OU wyższych rzędów). Interpretacja pól CN i UN jest różna w zależności od typu certyfikatu:

  • email - CN: identyfikator użytkownika, UN: imię i nazwisko użytkownika.
  • client - podobnie
  • server - CN: pełny adres domeny serwera, UN: pełna nazwa serwera.
  • Certyfikaty CA - CN: symbol urzędu certyfikacyjnego, UN: nazwa opisowa urzędu

Oto przykładowy formularz dla certyfikatu serwera SSL:

W przedostatnim polu wpisujemy liczbę dni na które wystawiany jest certyfikat. Ważne jest, aby data ważności generowanego certyfikatu nie przekraczała daty ważności certyfikatu CA, w przeciwnym wypadku bowiem programy klienta mogą odmówić przyjęcia tak wygenerowanego certyfikatu. (Aplikacja nie pozwala wpisać liczby dni większej niż okres ważności certyfikatu CA).

Po wypełnieniu formularza z danymi certyfikowanego obiektu i naciśnięciu przycisku Dalej pojawia się pole w którym należy każdorazowo wpisać hasło klucza prywatnego CA - aplikacja ze względów bezpieczeństwa (dostęp przez WWW) nie przechowuje tego hasła w trakcie pracy.

Po wpisaniu hasła CA następuje wygenerowanie certyfikatu i umieszczenie go w bazie LDAP. Jeżeli certyfikat z danym DN już istnieje, to wyświetlany jest komunikat o błędzie. Jeżeli operacja się udała, to certyfikat z kluczem prywatnym zapisywany jest na dyskietce w formacie PKCS #12 (plik z rozszerzeniem .p12).

2.2. Przeglądanie bazy certyfikatów

Po wybraniu przycisku Przeglądaj bazę otrzymujemy widok bazy certyfikatów:

Po bazie możemy poruszać się używając przycisków umieszczonych w dolnej części ekranu. Certyfikaty wyświetlane są w formie skróconej - widoczna jest wyłącznie nazwa obiektu (CN) oraz e-mail (E). Aby dowiedzieć się szczegółów odnośnie któregoś z certyfikatów należy wcisnąć przycisk Szczegóły umieszczony z jego prawej strony. Otrzymamy wtedy następujący obraz:

Mamy tu wszystkie informacje, które były podawane przy tworzeniu certyfikatu. Do widoku skróconego możemy powrócić naciskając przycisk Powrót.

2.3. Przeszukiwanie bazy

Aplikacja umożliwia proste przeszukiwanie bazy według zadanego klucza. Po wybraniu ikony Szukaj certyfikatu otrzymujemy formularz, w którym możemy wpisać fragment tekstu i zaznaczyć w jakim polu certyfikatu ma być on wyszukany:

Jeżeli zaznaczymy pole Dokładnie to przy wyszukiwaniu brane pod uwagę będą jedynie te pola, które zawierają dokładnie taki sam tekst, jak podany w ramce. Jeżeli opcja ta będzie nieaktywna, to wybrane zostaną wszystkie certyfikaty zawierające ten tekst jako podsłowo.

Wyszukiwanie inicjujemy wciskając przycisk Szukaj. Otrzymamy ekran identyczny jak w punkcie 2.2. z tą różnicą, że wyświetlone zostaną tylko te certyfikaty, które spełniają kryteria wyszukiwania.

2.4. Sprawdzanie stanu serwera

Przedostatnia ikona umożliwia uzyskanie istotnych informacji o stanie serwera urzędu certyfikacyjnego:

W sekcji Serwer LDAP parametr ping dotyczy fizycznego połączenia serwera z siecią, natomiast parametr Połączeniu mówi nam, czy serwer LDAP reaguje na zapytania.

W sekcji System plików widzimy, czy dostępny jest plik wykoywalny OpenSSL oraz czy certyfikat CA jest w porządku. Ostatnie pole dotyczy okresu ważności certyfikatu Urzędu - należy dbać o to, aby certyfikat miał zawsze odpowiednio długi termin ważności.

2.5. Zakończenie programu

Po wybraniu ostatniej ikony następuje zerwanie połączenia z serwerem aplikacji oraz zamknięcie okna przeglądarki i zakończenie pracy z programem.

3. Aplikacja użytkownika

Dotąd opisywana była tylko aplikacja administratora CA. Dostępna jest również jej wersja dla użytkownika umożliwiająca wyłącznie przeszukiwanie bazy i import certyfikatów. Wygląda ona bardzo podobnie do aplikacji administratora, jak również jej obsługa jest analogiczna.