config

KONFIGURACJA(5SSL)                   OpenSSL                  KONFIGURACJA(5SSL)



NAZWA
       config - biblioteka plików konfiguracyjnych OpenSSL CONF

OPIS
       Biblioteka OpenSSL CONF służy do wczytywania plików konfiguracyjnych.
       Obsługuje główny plik konfiguracyjny OpenSSL openssl.cnf oraz kilka
       innych, jak na przykład pliki SPKAC i pliki rozszerzenia certyfikatów dla
       narzędzi x509. Aplikacje OpenSSL mogą także używać biblioteki CONF do
       swych własnych celów.

       Plik konfiguracyjny jest podzielony na sekcje. Każda z nich rozpoczyna
       się wierszem [ nazwa_sekcji ] i kończy wraz z początkiem następnej sekcji
       lub wraz z końcem pliku. Nazwa sekcji może się składać ze znaków
       alfanumerycznych oraz znaków podkreślenia.

       Pierwsza sekcja pliku konfiguracyjnego ma specjalne znaczenie i określana
       jest jako sekcja domyślna. Zwykle nie ma nazwy i znajduje się na początku
       pliku, przed pierwszą nazwaną sekcją.  Nazwy są wyszukiwane najpierw w
       nazwanych sekcjach (o ile takie są), a następnie w sekcji domyślnej.

       Środowisko jest mapowane na sekcję o nazwie ENV.

       Komentarze należy poprzedzać znakiem #.

       Każda sekcja pliku konfiguracyjnego składa się z par nazwa,wartość w
       formie nazwa=wartość.

       Łańcuch nazwa może zawierać dowolne znaki alfanumeryczne jak również
       niektóre znaki przestankowe, takie jak . , ; oraz _.

       Łańcuch wartość składa się z ciągu znaków pomiędzy znakiem = a końcem
       wiersza, z wyłączeniem wszelkich spacji poprzedzających oraz końcowych.

       Łańcuch wartości podlega przesłanianiu zmiennych. Robi się to przez
       użycie formy $zmienna lub ${zmienna}: zastępuje to wartość nazwanej
       zmiennej w bieżącej sekcji. Można także zastąpić wartość z innej sekcji
       przy użyciu formy $sekcja::nazwa lub ${sekcja::nazwa}.  Zmienne
       środowiskowe przesłania się za pomocą konstrukcji $ENV::nazwa.  W ten sam
       sposób można także definiować zmienne środowiskowe, jeśli tylko program
       wyszukuje je za pośrednictwem biblioteki CONF zamiast bezpośredniego
       wywołania getenv().

       Można cytować poszczególne znaki przez dowolny znak cytowania lub znak \.
       Przez postawienie znaku \ na końcu wiersza łańcuch wartość można
       rozciągać na kilka wierszy. Tę samą funkcję pełnią też sekwencje \n, \r,
       \b oraz \t.

KONFIGURACJA BIBLIOTEKI OPENSSL
       W OpenSSL 0.9.7 i późniejszych aplikacje mogą automatycznie konfigurować
       niektóre aspekty OpenSSL, używając do tego głównego pliku
       konfiguracyjnego OpenSSL lub alternatywnego pliku konfiguracyjnego.
       Narzędzie użytkowe openssl zawiera w sobie taką funkcjonalność: dowolne
       podpolecenie używa głównego pliku konfiguracyjnego OpenSSL, chyba że
       podpoleceniu przekazano opcję nakazującą użycie alternatywnego pliku
       konfiguracyjnego.

       Aby włączyć konfigurację biblioteki, sekcja domyślna musi zawierać
       odpowiednią linię, wskazującą na główną sekcję konfiguracji. Domyślną
       nazwą używaną przez narzędzie użytkowe openssl jest openssl_conf. Inne
       aplikacje mogą używać alternatywnych nazw takich jak aplikacja_conf.

       Sekcja konfiguracji powinna się składać ze zbioru par nazwa,wartość,
       zawierających odpowiednią konfigurację modułu. nazwa oznacza nazwę modułu
       konfiguracji, znaczenie wartości zależy od modułu: może na przykład
       oznaczać inną, specyficzną dla modułu, sekcję konfiguracji. Przykład:

        openssl_conf = openssl_init

        [openssl_init]

        oid_section = nowe_oidy
        engines = sekcja_silnika

        [nowe_oidy]

        ... tutaj nowe oidy  ...

        [sekcja_silnika]

        ...  tutaj rzeczy związane z silnikiem ...

       Obecnie istnieją dwa moduły konfiguracyjny: jeden dla obiektów ASN1, a
       drugi dla konfiguracji SILNIKA.

   MODUŁ KONFIGURACJI OBIEKTU ASN1
       Nazwą tego modułu jest oid_section. Wartość tej zmiennej wskazuje na
       sekcję zawierającą pary nazwa,wartość OID-ów: nazwą jest krótka i długa
       nazwa OID-u, wartością jest numeryczny OID. Chociaż niektóre polecenia
       użytkowe openssl już zawierają swoją własną sekcję OBIEKTU ASN1, to
       jednak nie wszystkie to robią. Używając modułu konfiguracji OBIEKTU ASN1,
       wszystkie polecenia użytkowe openssl, mogą widzieć zarówno nowe obiekty,
       jak i wszystkie zgodne aplikacje. Na przykład:

        [new_oids]

        jakiś_nowy_oid = 1.2.3.4
        jakiś_inny_oid = 1.2.3.5

       OpenSSL 0.9.8 umożliwia także ustawienie wartości na długą nazwę z
       przecinkiem i numerycznym OID. Przykład:

        krótkaNazwa = jakaś długa nazwa obiektu, 1.2.3.4

   MODUŁ KONFIGURACJI SILNIKA
       Moduł konfiguracji SILNIKA ma nazwę engines. Wartość tej zmiennej
       wskazuje na sekcję zawierającą dalsze informacje o konfiguracji SILNIKA.

       Sekcja wskazywana przez engines jest tabelą nazw silników (patrz jednak
       engine_id poniżej), a kolejne sekcje zawierają konfigurację specyficzną
       dla każdego SILNIKA.

       Każda sekcja specyficzna dla SILNIKA jest używana do ustawiania
       domyślnych algorytmów, ładowania bibliotek dynamicznych, przeprowadzania
       inicjowania oraz wysyłania poleceń kontrolnych. Właściwa operacja zależy
       od nazwy polecenia, która jest nazwą pary nazwa,wartość. Rozpoznawane
       polecenia przedstawiono poniżej.

       Na przykład:

        [sekcja_silnika]

        # Konfiguracja SILNIKA nazwanego "foo"
        foo = sekcja_foo
        # Konfiguracja SILNIKA nazwanego "bar"
        bar = sekcja_bar

        [sekcja_foo]
        ... polecenia specyficzne dla SILNIKA "foo" ...

        [sekcja_bar]
        ... polecenia specyficzne dla SILNIKA "bar" ...

       Polecenie engine_id jest używane do nadania nazwy SILNIKOWI. Jeśli jest
       używane, musi występować pierwsze. Na przykład:

        [sekcja_silnika]
        # Normalnie ta sekcja obsłużyłaby SILNIK nazwany "foo"
        foo = sekcja_foo

        [sekcja_foo]
        # Nadpisuje domyślną nazwę i używa "myfoo" zamiast niej.
        engine_id = myfoo

       Polecenie dynamic_path ładuje i dodaje SILNIK z podanej ścieżki. Jest to
       odpowiednik wysyłania polecenia kontrolnego SO_PATH z bieżącą wartością
       ścieżki, po której dodano LIST_ADD z wartością 2 i LOAD do dynamicznego
       SILNIKA. Jeśli nie jest to pożądane zachowanie, to te alternatywne
       kontrolki mogą zostać wysłane do dynamicznego SILNIKA za pomocą
       odpowiednich poleceń kontrolnych.

       Polecenie init określa, czy inicjować SILNIK. Jeśli wartością jest 0, to
       SILNIK nie będzie inicjowany. Jeśli wartością jest 1, to natychmiast
       wykonywana jest próba inicjacji SILNIKA. Jeśli nie podano polecenia init,
       to będzie wykonana próba inicjacji SILNIKA po przetworzeniu wszystkich
       poleceń z jego sekcji.

       Polecenie default_algorithms ustawia domyślne algorytmy, których SILNIK
       będzie dostarczał przy użyciu funkcji SILNIK_set_default_string().

       Jeśli nazwa nie pasuje do żadnej z powyższych nazw poleceń, to przyjmuje
       się, że jest to polecenie kontrolne wysyłane do SILNIKA. Wartością
       polecenia jest argument podanej nazwy. Jeśli wartością jest łańcuch
       EMPTY, to do polecenia nie jest wysyłana żadna wartość.

       Na przykład:

        [sekcja_silnika]

        # Konfiguracja silnika nazwanego "foo"
        foo = sekcja_foo

        [sekcja_foo]
        # Ładuje silnik z obiektu dynamicznego
        dynamic_path = /ścieżka/do/sinlikfoo.so
        # Polecenie kontrolne specyficzne dla foo
        jakaś_kontrolka = jakaś_wartość
        # Inne polecenie kontrolne, niepobierająca wartości
        inna_kontrolka = EMPTY
        # Przekazuj wszystkie domyślne algorytmy
        default_algorithms = ALL

UWAGI
       Jeżeli plik konfiguracyjny stara się przesłonić nieistniejącą zmienną,
       ustawiany jest znacznik błędu i plik nie zostaje wczytany. Może się to
       stać podczas próby przesłaniania niezdefiniowanej zmiennej środowiskowej.
       Na przykład w poprzedniej wesji OpenSSL domyślny plik konfiguracji
       OpenSSL używał wartości HOME, która może nie istnieć w systemach innych
       niż uniksowe, co powodowało błąd.

       Można to obejść za pomocą sekcji domyślnej, w której znajdą się domyślne
       wartości: jeżeli wśród zmiennych środowiska nie znajdzie się danej
       wartości, zostanie użyta właśnie wartość domyślna. Aby ten sposób działał
       właściwie, wartość domyślna musi zostać zdefiniowana w pliku wcześniej
       niż przesłonięcie. Przykłady można znaleźć w rozdziale PRZYKŁADY.

       Jeśli ta sama wartość jest zdefiniowana więcej niż jeden raz, wszystkie
       wystąpienia poza ostatnim zostaną pominięte bez komunikatu o błędzie. W
       sytuacjach takich jak DN to samo pole może się pojawić wielokrotnie -
       rozwiązaniem jest zwykle pomijanie znaków przed początkową ., na
       przykład:

        1.OU="Moje pierwsze OU"
        2.OU="Moje Drugie OU"

PRZYKŁADY
       Oto przykładowy plik konfiguracyjny, zawierający niektóre z wymienionych
       wyżej elementów:

        # To jest sekcja domyślna

        HOME=/temp
        RANDFILE= ${ENV::HOME}/.rnd
        configdir=$ENV::HOME/config

        [ sekcja_pierwsza ]

        # Jesteśmy w sekcji pierwszej

        # Cytowanie pozwala na używanie spacji poprzedzających i końcowych
        cokolwiek = " dowolna nazwa zmiennej "

        tekst = Łańcuch który może \
        rozciągać się na kilka wierszy \
        jeśli użyje się znaków \\ na końcu wiersza

        komunikat = Witaj świecie\n

        [ sekcja_druga ]

        pozdrowienia = $sekcja_pierwsza::komunikat

       Następny przykład pokazuje, jak bezpiecznie przesłaniać zmienne
       środowiskowe.

       Załóżmy, że chcemy, aby zmienna tmpfile wskazywała nazwę pliku roboczego.
       Katalog, w którym ten plik się znajduje, można odczytać ze zmiennych
       środowiskowych TEMP lub TMP, lecz mogą one nawet nie mieć nadanej żadnej
       wartości. Jeśli po prostu użyjemy nazw zmiennych środowiskowych i okaże
       się, że one nie istnieją, to podczas próby otwarcia pliku wystąpi błąd.
       Przy wykorzystaniu sekcji domyślnej możemy spowodować, że najpierw będzie
       poszukiwana zmienna TEMP, następnie TMP, a jeśli żadna z nich nie będzie
       zdefiniowana, zostanie użyty katalog /tmp.

        TMP=/tmp
        # Powyższa wartość jest używana, kiedy TMP nie ma w środowisku
        TEMP=$ENV::TMP
        # Powyższa wartość jest używana, kiedy TEMP nie ma w środowisku
        tmpfile=${ENV::TEMP}/tmp.filename

BŁĘDY
       W obecnej chwili nie ma sposobu na wykorzystanie znaków w zapisie
       ósemkowym \nnn. Wszystkie łańcuchy są zakończone znakiem null, więc ten
       znak nie może się pojawiać w wartościach.

       Cytowanie nie jest całkiem porządne: po użyciu sekwencji w rodzaju  \n
       nie można więcej używać cytowania w tym samym wierszu.

       Pliki są wczytywane tylko w jednym przebiegu. Z tego powodu przesłanianie
       zmiennych działa tylko, jeżeli są one zdefiniowane we wcześniejszych
       wierszach danego pliku.

ZOBACZ TAKŻE
       x509(1), req(1), ca(1)

TŁUMACZENIE
       Autorami polskiego tłumaczenia niniejszej strony podręcznika man są:
       Daniel Koć (PTM) <kocio@linuxnews.pl> i Robert Luberda
       <robert@debian.org>.

       Polskie tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc,
       zgłaszanie błędów na stronie http://sourceforge.net/projects/manpages-
       pl/. Jest zgodne z wersją  1.0.1i oryginału.



1.0.1i                             2014-07-22                 KONFIGURACJA(5SSL)