Provided by: manpages-pl_0.7-1_all bug

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.