# Aláírási algoritmus, PHPSecLib és az openssl.cnf megkeresése

> A vezérlőpult és a Child-webhelyek közti aláírás algoritmusának cseréje, a PHPSecLib mint OpenSSL-alternatíva, és az openssl.cnf fájl megtalálása.

A MainWP digitális aláírással ellenőrzi a vezérlőpult és a Child-webhelyek közti kommunikációt. Az aláírás algoritmusát és a kapcsolat ellenőrzésének módját (OpenSSL vagy PHPSecLib) globálisan és webhelyenként is beállíthatod.

## Az aláírási algoritmus

Korábban a MainWP SHA1-et használt az aláírás ellenőrzéséhez. Mivel a tárhelyek áttértek az OpenSSL 3-ra, és sok helyen a SHA1-et örökölt, letiltott opcióként kezelik, az alapértelmezés ma a SHA256, amely az OpenSSL 1 és 3 verzióval is működik. A helyi felületen az alapértelmezett érték felirata: **OPENSSL_ALGO_SHA256 (alapértelmezett)**.

### A globális aláírási algoritmus módosítása

Ha a vezérlőpult tárhelye nem támogat egy bizonyos SHA-algoritmust, a kapcsolatok meghiúsulhatnak.

1. Kattints a jobb felső felhasználói menüre, és nyisd meg a **MainWP beállításai → Speciális beállítások** oldalt.
2. Az **Egyéb beállítások** között keresd meg az **OpenSSL aláírási algoritmus** sort, és válassz egy támogatott algoritmust.
3. Kattints a **Beállítások mentése** gombra.

![A Speciális beállítások oldal az Egyéb beállítások szakasszal, benne a kapcsolat ellenőrzésének módja és az OpenSSL aláírási algoritmus](./kepek/halado-specialis-beallitasok.webp)

*A Speciális beállítások oldal az Egyéb beállítások szakasszal, benne a kapcsolat ellenőrzésének módja és az OpenSSL aláírási algoritmus* (https://minta-bolt.hu/wp-admin/admin.php?page=SettingsAdvanced)

A képen az **Egyéb beállítások** alján látszik a **Kapcsolat ellenőrzésének módja** és az **OpenSSL aláírási algoritmus** legördülő lista.

A legtöbb tárhely támogatja a SHA256-ot. Ha a tiéd nem, kérdezd meg a támogatásukat, mely algoritmusokat engedik. Az aláírás ellenőrzése a webhely vezérlőpulthoz adása **után** történik. Ha az ellenőrzés meghiúsul, a webhely hozzáadható, de a szinkron és a többi hitelesített művelet nem fog működni.

### Visszaváltás SHA1-re

Ha globálisan vagy bizonyos webhelyeknél SHA256-ról SHA1-re váltasz, az érintett Child-webhelyeket újra kell csatlakoztatnod:

1. Nyisd meg a Child-webhely WP-adminját.
2. Kapcsold ki, majd újra be a MainWP Child bővítményt (ezzel megszakad a kapcsolat).
3. Csatlakoztasd újra a webhelyet a vezérlőpultról.

## A PHPSecLib mint az OpenSSL alternatívája

A PHPSecLib a kriptográfiai függvények tiszta PHP-megvalósítása.

### Mikor használd

| Helyzet | Leírás |
|---|---|
| Nincs OpenSSL | A szerverre nincs telepítve az OpenSSL |
| Konfigurációs gondok | Az OpenSSL hibásan van beállítva (helyi fejlesztői környezeteknél gyakori) |
| openssl.cnf-problémák | Nem találod vagy nem tudod beállítani az `openssl.cnf` fájlt |

Ha az OpenSSL a tárhelyeden rendben működik (a legtöbb webtárhelyen így van), nem kell PHPSecLib-re váltanod.

### A PHPSecLib bekapcsolása globálisan

1. Nyisd meg a **MainWP beállításai → Speciális beállítások** oldalt.
2. Az **Egyéb beállítások** között a **Kapcsolat ellenőrzésének módja** listában válaszd a **PHPSecLib** értéket. Az alapérték: **OpenSSL (alapértelmezett)**.
3. Kattints a **Beállítások mentése** gombra.

A globális átváltás PHPSecLib-re azt igényli, hogy a meglévő Child-webhelyeket újra hozzáadd. Ennek elkerülésére inkább webhelyenként állítsd be.

## Webhelyenkénti beállítás

Az aláírási algoritmus és a kapcsolat ellenőrzési módja is beállítható egy-egy webhelyre. Ez akkor hasznos, ha egy Child-webhely tárhelyének más a követelménye.

1. Nyisd meg a **MainWP → Webhelyek → Webhelyek kezelése** oldalt.
2. Kattints a webhelyre, majd a **Szerkesztés** műveletre.
3. Görgess a **Speciális beállítások (nem kötelező)** szakaszhoz.
4. Állítsd be az aláírási algoritmust és/vagy a kapcsolat ellenőrzésének módját az adott webhelyhez.
5. Mentsd a webhely beállításait.

## Az openssl.cnf fájl megkeresése

Az `openssl.cnf` fájl az OpenSSL beállításait tartalmazza, amelyeket a PHP a kriptográfiai műveletekhez használ. SSL-hibák elhárításakor vagy a MainWP titkosításának beállításakor szükség lehet rá.

### Megkeresés a phpinfo() segítségével (ajánlott)

1. Hozz létre egy PHP-fájlt `<?php phpinfo(); ?>` tartalommal, vagy használd a tárhelyvezérlő PHP-információs eszközét.
2. Keresd meg az OpenSSL szakaszt.
3. Az **Openssl default config** sorban látod a fájl elérési útját.

### Gyakori helyek helyi fejlesztői környezetekben

| Környezet | Tipikus elérési út |
|---|---|
| XAMPP (Windows) | `C:\xampplite\apache\conf\openssl.cnf`; más meghajtón vagy verziószámmal például `D:\xampplite\apache2.4.9\conf\openssl.cnf` |
| WAMP (Windows) | `C:\wamp\bin\apache2.4.9\conf\openssl.cnf`; az Apache verziószáma eltérhet, például `D:\wamp\bin\apache2.2.1\conf\openssl.cnf` |
| MAMP (Windows, macOS) | `C:\MAMP\bin\apache\conf\openssl.cnf`, vagy másik meghajtón `D:\MAMP\bin\apache\conf\openssl.cnf` |
| Local by Flywheel | `/usr/lib/ssl/openssl.cnf` (macOS-en és Windowson ugyanaz) |
| Laragon (Windows) | `C:\laragon\bin\apache\httpd-2.4.47-win64-VS16\conf\openssl.cnf`; az Apache verziós mappaneve frissítésekkel változik |

A Local by Flywheelben az aktuális útvonalat így ellenőrizheted: kattints a webhely PHP-verziója melletti **i** ikonra, görgess az openssl szakaszhoz, és nézd meg az **Openssl default config** értékét.

### Webtárhelyen

Webtárhelyen a fenti phpinfo() módszerrel találod meg a pontos útvonalat. Ha így sem találod, kérd meg a tárhelyszolgáltató támogatását, hogy megadják az `openssl.cnf` pontos helyét az ő szerverükön.

## Ellenőrzőlista

- Eldöntötted, hogy a kapcsolati gond az aláíráshoz vagy az OpenSSL-hez kötődik.
- A tárhelyednek megfelelő aláírási algoritmust választottad.
- Ha nincs OpenSSL, beállítottad a PHPSecLib-et.
- A Child-webhelyek kapcsolódnak és szinkronizálnak.
- Szükség esetén megtaláltad az `openssl.cnf` útvonalát.
