Linuxos OpenSSL konfigurálása
Figyelemfelhívás
Ez a cikk az End Of Life (EOL) állapotú Linux-disztribúcióra, a CentOS-ra hivatkozik. Ennek megfelelően fontolja meg a használatot és a tervezést. További információ: CentOS End Of Life útmutató.
A Speech SDK-val az OpenSSL dinamikusan konfigurálva van a gazdarendszer verziójára.
Feljegyzés
Ez a cikk csak akkor alkalmazható, ha a Speech SDK Linuxon támogatott.
A kapcsolat biztosításához ellenőrizze, hogy az OpenSSL-tanúsítványok telepítve vannak-e a rendszerben. Parancs futtatása:
openssl version -d
Az Ubuntu/Debian-alapú rendszerek kimenetének a következőnek kell lennie:
OPENSSLDIR: "/usr/lib/ssl"
Ellenőrizze, hogy van-e certs
alkönyvtár az OPENSSLDIR alatt. A fenti példában az lenne /usr/lib/ssl/certs
.
Ha létezik,
/usr/lib/ssl/certs
és sok különálló tanúsítványfájlt tartalmaz (a kiterjesztéssel együtt vagy.pem
kiterjesztéssel.crt
együtt), nincs szükség további műveletekre.Ha az OPENSSLDIR más, mint
/usr/lib/ssl
egy tanúsítványcsomagfájl több különálló fájl helyett, akkor be kell állítania egy megfelelő SSL-környezeti változót, amely jelzi, hogy hol találhatók a tanúsítványok.
Példák
Íme néhány példa az OpenSSL-címtárakra konfigurálni kívánt környezeti változókra.
- OPENSSLDIR is
/opt/ssl
. Van egycerts
alkönyvtár, amely sok.crt
vagy fájlból áll.pem
. Állítsa be a környezeti változótSSL_CERT_DIR
úgy, hogy a Speech SDK használata előtt mutasson/opt/ssl/certs
. Példa:
export SSL_CERT_DIR=/opt/ssl/certs
- AZ OPENSSLDIR (hasonlóan az
/etc/pki/tls
RHEL/CentOS-alapú rendszerekhez). Van egycerts
ca-bundle.crt
alkönyvtár például egy tanúsítványcsomagfájllal. A Speech SDK használata előtt állítsa a környezeti változótSSL_CERT_FILE
arra a fájlra. Példa:
export SSL_CERT_FILE=/etc/pki/tls/certs/ca-bundle.crt
Tanúsítvány-visszavonási ellenőrzések
Amikor a Speech SDK csatlakozik a Speech szolgáltatáshoz, ellenőrzi a Transport Layer Security (TLS/SSL) tanúsítványt. A Speech SDK ellenőrzi, hogy a távoli végpont által jelentett tanúsítvány megbízható-e, és nem lett-e visszavonva. Ez az ellenőrzés védelmet nyújt a hamisítást és más kapcsolódó vektorokat érintő támadások ellen. Az ellenőrzés egy visszavont tanúsítványok listájának (CRL) az Azure által használt hitelesítésszolgáltatótól való lekérésével történik. A dokumentumban megtalálható a frissített TLS CRL-ek Azure CA-letöltési helyeinek listája.
Ha a Speech szolgáltatásként megjelenő célhely egy lekért CRL-ben visszavont tanúsítványt jelent, az SDK megszakítja a kapcsolatot, és egy eseményen keresztül Canceled
hibát jelez. A jelentett tanúsítványok hitelessége nem ellenőrizhető frissített CRL nélkül. Ezért a Speech SDK hibaként kezeli a CRL Azure CA-helyről való letöltésének meghiúsulását is.
Figyelmeztetés
Ha a megoldás proxyt vagy tűzfalat használ, úgy kell konfigurálni, hogy engedélyezze az Azure által használt összes tanúsítvány-visszavonási lista URL-címéhez való hozzáférést. Vegye figyelembe, hogy ezen URL-címek nagy része tartományon kívül microsoft.com
esik, ezért a hozzáférés *.microsoft.com
engedélyezése nem elegendő. A részletekért tekintse meg ezt a dokumentumot . Kivételes esetekben figyelmen kívül hagyhatja a CRL-hibákat (lásd a levelező szakaszt), de ez a konfiguráció erősen nem ajánlott, különösen éles helyzetekben.
Nagyméretű CRL-fájlok (>10 MB)
A CRL-sel kapcsolatos hibák egyik oka a nagy CRL-fájlok használata. Ez a hibaosztály általában csak a kiterjesztett CA-láncokkal rendelkező speciális környezetekre vonatkozik. A standard nyilvános végpontok nem találkozhatnak ezzel a problémával.
A Speech SDK által használt alapértelmezett maximális CRL-méret (10 MB) konfigurációs objektumonként módosítható. A beállítás tulajdonságkulcsa, CONFIG_MAX_CRL_SIZE_KB
és a sztringként megadott érték alapértelmezés szerint "10000" (10 MB). Ha például létrehoz egy SpeechRecognizer
objektumot (amely kezeli a Speech szolgáltatással való kapcsolatot), beállíthatja ezt a tulajdonságot a sajátjában SpeechConfig
. Az alábbi kódrészletben a konfiguráció úgy van beállítva, hogy a CRL-fájl mérete legfeljebb 15 MB legyen.
config.SetProperty("CONFIG_MAX_CRL_SIZE_KB"", "15000");
config->SetProperty("CONFIG_MAX_CRL_SIZE_KB"", "15000");
config.setProperty("CONFIG_MAX_CRL_SIZE_KB"", "15000");
speech_config.set_property_by_name("CONFIG_MAX_CRL_SIZE_KB"", "15000")
speechConfig.properties.SetPropertyByString("CONFIG_MAX_CRL_SIZE_KB", "15000")
CRL-hibák megkerülése vagy figyelmen kívül hagyása
Ha egy környezet nem konfigurálható egy Azure CA-hely eléréséhez, a Speech SDK nem tudja lekérni a frissített CRL-t. Konfigurálhatja az SDK-t a letöltési hibák folytatására és naplózására, vagy az összes CRL-ellenőrzés megkerülésére.
Figyelmeztetés
A CRL-ellenőrzések biztonsági intézkedésnek számítanak, és megkerülésük növeli a támadásokra való fogékonyságot. Ezeket nem szabad megkerülni anélkül, hogy alaposan figyelembe kellene venni a CRL-ellenőrzések által enyhített támadási vektorok elleni védelem biztonsági következményeit és alternatív mechanizmusait.
Ha folytatni szeretné a kapcsolatot, ha egy CRL nem kérhető le, állítsa a tulajdonságot "OPENSSL_CONTINUE_ON_CRL_DOWNLOAD_FAILURE"
a következőre "true"
: . A rendszer továbbra is megkísérli lekérni a CRL-t, és a hibák továbbra is ki lesznek bocsátva a naplókban, de a kapcsolati kísérletek folytathatók.
config.SetProperty("OPENSSL_CONTINUE_ON_CRL_DOWNLOAD_FAILURE", "true");
config->SetProperty("OPENSSL_CONTINUE_ON_CRL_DOWNLOAD_FAILURE", "true");
config.setProperty("OPENSSL_CONTINUE_ON_CRL_DOWNLOAD_FAILURE", "true");
speech_config.set_property_by_name("OPENSSL_CONTINUE_ON_CRL_DOWNLOAD_FAILURE", "true")
speechConfig.properties.SetPropertyByString("OPENSSL_CONTINUE_ON_CRL_DOWNLOAD_FAILURE", "true")
A tanúsítvány-visszavonási ellenőrzések kikapcsolásához állítsa a tulajdonságot "OPENSSL_DISABLE_CRL_CHECK"
a következőre "true"
: . Ezután a Speech szolgáltatáshoz való csatlakozás során nem kísérel meg ellenőrizni vagy letölteni a CRL-t, és nem kell automatikusan ellenőriznie a jelentett TLS/SSL-tanúsítványt.
config.SetProperty("OPENSSL_DISABLE_CRL_CHECK", "true");
config->SetProperty("OPENSSL_DISABLE_CRL_CHECK", "true");
config.setProperty("OPENSSL_DISABLE_CRL_CHECK", "true");
speech_config.set_property_by_name("OPENSSL_DISABLE_CRL_CHECK", "true")
speechConfig.properties.SetPropertyByString("OPENSSL_DISABLE_CRL_CHECK", "true")
CRL-gyorsítótárazás és teljesítmény
Alapértelmezés szerint a Speech SDK gyorsítótáraz egy sikeresen letöltött CRL-t a lemezen a jövőbeli kapcsolatok kezdeti késésének javítása érdekében. Ha nincs gyorsítótárazott CRL, vagy ha a gyorsítótárazott CRL lejárt, a rendszer letölt egy új listát.
Egyes Linux-disztribúciókban nincs meghatározva környezeti TMP
TMPDIR
változó, ezért a Speech SDK nem gyorsítótárazza a letöltött CRL-eket. A Speech SDK definíció nélkül vagy TMPDIR
környezeti változó nélkül TMP
letölt egy új CRL-t minden kapcsolathoz. Ebben a helyzetben a kezdeti kapcsolat teljesítményének javítása érdekében létrehozhat egy környezeti változótTMPDIR
, és beállíthatja egy ideiglenes könyvtár akadálymentes elérési útjára.
Következő lépések
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: