CONFIG(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.

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 poprzez 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ĂÂ konstrucji 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 poprzez dowolny znak cytowania lub znak \. Przez postawienie znaku \ na koÄšÂcu wiersza ÄšÂaÄšÂcuch wartoÄšÂĂÂ moÄšĹşna rozciĂÂgaĂÂ na kilka wierszy. TĂÂ samĂÂ rolĂÂ peÄšÂniĂÂ teÄšĹş sekwencje \n, \r, \b oraz \t.

UWAGI
JeÄšĹşeli plik konfiguracyjny stara siĂÂ przesÄšÂoniĂÂ nieistniejĂÂcĂÂ zmiennĂÂ, podnoszony jest znacznik bÄšÂĂÂdu i plik nie zostaje wczytany. MoÄšĹşe siĂÂ to staĂÂ podczas prÄĹby przesÄšÂaniania nie zdefiniowanej zmiennej ÄšÂrodowiskowej. Na przykÄšÂad domyÄšÂlny plik konfiguracji OpenSSL uÄšĹşywaÄšÂ wartoÄšÂci HOME, ktÄĹra moÄšĹşe nie istnieĂÂ w systemach innych niÄšĹş uniksy.

MoÄšĹşna to obejÄšÂĂÂ za pomocĂÂ sekcji domyÄšÂlnej, w ktÄĹrej znajdĂÂ siĂÂ domyÄšÂlne wartoÄšÂci: jeÄšĹşeli wÄšÂrod 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ÄšÂadÄĹw poszukaj w sekcji 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 pierwszej sekcji.
 # 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 \
 przy uÄšĹşyciu \\ 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 braku informacji, wiĂÂc te znaki nie mogĂÂ pojawiac siĂÂ 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)

OD TÄšÂUMACZA
TÄšÂumaczenie Daniel KoĂÂ <kocio@linuxnews.pl> na podstawie strony podrĂÂcznika systemowego config(1) 0.9.6c, 15.04.2002.