Přístup do LDAP SSL z PHP aplikace ve Windows

Před nějakou dobou jsem potřeboval odbavovat jednoduchý PHP skript, který pracoval s uživatelskými účty v Active Directory. Pokud ale takový skript pracuje s hesly, nebo parametry pro platnost účtu, systém požaduje připojení přes LDAP over SSL (ldaps).

PHP aplikace nám běží na Windows Serveru a Microsoft IIS. Průzkumem internetu se mi povedlo web server nakonfigurovat, takže se o výsledek podělím a hlavně si ho zaznamenám pro případ další potřeby Smile Předpokládám, že PHP už máte na Windows Serveru rozchozené. Pokud ne, použijte instalaci přes Web Platform Installer.

Konfigurace PHP

Otevřeme si php.ini pro editaci a povolíme (odkomentujeme):
extension=php_ldap.dll
extension=php_openssl.dll

Nahrání DLL knihoven do systému

Z adresáře instalace PHP překopírujeme knihovnu libeay32.dll do systémové složky operačního systému (nejčastěji c:\windows\system32). V případě, že z neznámých důvodů potřebujeme provozovat super-prehistorickou verzi PHP 4.2 a nižší, použijeme soubor libsasl.dll.

Konfigurační soubor k LDAP

Vytvořme adresář C:\openldap\sysconf, který bude obsahovat soubor ldap.conf. Jeho obsah by měl vypadat následovně:

TLS_REQCERT never
TLS_CACERT c:\openldap\sysconf\myserver.pem

Instalace certifikační autority

Active Directory by měla mít nainstalovanou certifikační autoritu. Pokud nemá, nainstalujete jí pomocí Server Manager – Add roles and features – Server Roles – Active Directory Certificate Services.

Po úspěšné instalaci začne Active Directory poslouchat na portu 636.

Získání Active Directory certfikátu

Na serveru s certifikační autoritou si otevřeme MMC konzoli a připojíme snap-in Certifikační autorita. Následně klikneme na jeho název pravým tlačítkem, zvolíme vlastnosti. Na kartě Obecné pak Zobrazit certifikát, karta Podrobnosti a Kopírovat do souboru.

Certifikát vyexportujeme do souboru *.cer, jako Base-64 Encoded X.509(.cer).

Konverze certifikátu

Pro běh PHP potřebujeme certifikát nikoliv ve formátu *.cer, ale *.pem. Konverzi můžeme provést například přes openSSL. Příklad příkazu pro konverzi:

C:\openssl\openssl x509 -in myserver.cer -out myserver.pem

Instalace certifikátu

Certifikát myserver.pem překopírujeme do cesty zadané v souboru ldap.conf.

Nyní restartujte IIS, aby se upravená konfigurace osvěžila na serveru a ldap_connect(‚ldaps://ldapserver.domana.ltd/‘); začne fungovat.

Windows 10: Chybějící Internet Explorer

Přesto, že ve Windows 10 můžeme používat několik opravdu kvalitních prohlížečů, jako je již předinstalovaný Microsoft Edge, nebo ultimátní kladivo v podobě Opery, musíme občas sáhnout po legacy Internet Exploreru. Co ale dělat, když ve Windows 10 nenacházíme?

Instalace přes systémová nastavení

Start – Nastavení – Aplikace – Spravovat volitelné funkce – Přidat součást – Internet Explorer 11.

Stejným způsobem ho můžeme naopak i odinstalovat.

Instalace pomocí příkazové řádky

Pokud se nám předchozí způsob nedaří, použijme kouzlo příkazové řádky. Spusťme příkazový řádek s administrátorským oprávněním a odpalme příkaz:

dism /online /get-featureinfo:Internet-Explorer-Optional-amd64

Zažil jsem bohužel stav, kdy místo instalace systém pouze hlásí chybu Feature name Internet-Explorer-Optional-amd64 is unknown. A Windows feature name was not recognized.

V tomto případě zkusme třetí cestu.

Instalace pomocí instalačního média

Pro tyto potřeby potřebujeme instalační médium s Windows 10. Jedno, zda máme USB flashdisk, nebo jen stažené ISO. Postup je následující:

  1. Připojme USB disk, nebo ISO soubor
  2. Na disku nalezneme adresář Soursce – sxs (např. d:\sources\sxs). Z něj budeme potřebovat soubory Microsoft-Windows-InternetExplorer-Optional-Package-cs-CZ.cab a microsoft-windows-internetexplorer-optional-package.cab. Buď ho zkopírujte, nebo si zapamatujte cestu.
  3. Použijte příkazy:
    dism /online /add-package /packagepath:d:\sources\sxs\Microsoft-Windows-InternetExplorer-Optional-Package-cs-CZ.cab
    dism /online /add-package /packagepath:d:\sources\sxs\microsoft-windows-internetexplorer-optional-package.cab
  4. Restartujte počítač
  5. Použijte dism /online /enable-feature /featurename:internet-explorer-optional-amd64

Google Chrome neotevírá https stránky po aktualizaci Windows 1803

Po aktualizaci Windows 10 na verzi 1803 (April update) jsem na některých strojích objevil problém v otevíráním https stránek.

Stránka se nejdříve extrémně dlouho načítá (Establishing Secure Connection/Navazování zabezpečeného připojení) a následně skončí na ERR_CONNECTION_TIME_OUT. V jiných prohlížečích (Microsoft Edge) se tento problém nevyskytoval.

connection-time-out

Průzkumem jsem zjistil, že tento problém má co dočinění se službou CryptSvc/Šifrování. Po jejím zastavení se stránky načítají správně, ale to není řešení.

Na službě CryptSvc jsou závislé různé DCOM moduly. Pohledem do EventLogu je jasné, že tady bude problém. S oprávněním.

Spálil jsem několik hodin prohledáváním Technetího fóra, ale bez úspěchu. Nakonec mi pomohla utilita od Bleepingcomputers/tweeking.com.

Stačí stáhnout portable verzi, spustit Repair_Windows.exe (jako administrator), zvolit “Jump To Repairs” a zvolit “Preset: Permissons Only”.

Aplikace zresetuje nastavení oprávnění pro jednotlivé systémové složky a klíče v registru, což zdá se, tento problém řeší.

Downgrade edice Windows

Operační systémy rodiny Windows dokáží poměrně snadný in-place upgrade, kterým je lze povýšit na novou verzi. Ještě jednodušší je změna edice (např. ze Standard na Enterprise) pouhým zadáním nového licenčního čísla.

Problém ale nastává, když potřebujeme jít opačně. Například kvůli upgrade. Klasickým příkladem je pokus o upgrade Windows Server 2008R2 Datacenter –> Windows Server 2012R2 Std.

Oficiálně není takový přechod možný, musíte provést kompletní reinstalaci. Jak si ale ušetřit čas, nervy i starosti? Samozřejmě neoficiálním, nepodporovaným, ale funkčním postupem Smile

Stačí v editoru registrů najít cestu HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion a následně změnit klíče:

EditionID na hodnotu např. ServerStandard

ProductName na hodnotu např. Windows Server 2008R2 Standard

V tuto chvíli vás již in-place upgrade wizard nechá dokončit požadované operace!

Nelze instalovat Creators Update pomocí WSUS: chyba 0x80244019

V případě, že ačkoliv na vašem WSUS serveru schválíte upgrade na Windows 10, verze 1703, ale koncové stanice místo instalace hlásí Při instalaci některých aktualizací došlo k problémům, pokus o instalaci se bude opakovat později. Pokud se vám tato zpráva zobrazuje opakovaně a chcete si najít další informace na webu nebo se obrátit na podporu. může vám pomoci toto:

Budoucí aktualizace na Windows 10 Pro, verze 1703, cs-cz, Retail – chyba 0x80244019 zkuste následující řešení:

Otevřete váš WSUS server, na kterém spusťte Internet Informarmation Services (IIS). Otevřete si nastavení MIME Types.

Pomocí tlačítka Add přidejte záznam .esd – application/octet-stream.

Následně stačí IIS server restartovat.

HUAWEI E3372 a FortiGate

Běžně provozuji routery od Fortinetu s 3G/LTE USB modemem, který konfiguruji jako backup pro případ výpadku primární linky. Naposledy se mi ale dostal do rukou modem Huawei E3372, brandovaný T-Mobile, který byl lehce nepoddajný a FortiGate se přes něj odmítal připojit.

Po průzkumu internetu jsem objevil problém – modem se hlásí primárně jako USB disk (s ovladači, software apod.), nikoliv jako modem. Protože obsah internetových diskuzí mizí, ale JiříkovoEgo přetrvává, slouží tento text jako archiv Veselý obličej

Nejprve modem připojte k počítači, spusťte Správce zařízení – Modemy – HUAWEI Mobile Connect –3G Modem a otevřete kartu Modem. Zapamatujme si, na jakém COM portu je zařízení připojeno.

Nyní spusťte Putty a připojte se k COM portu zjištěnému výše.

Putty

Nyní použijeme AT příkaz, aby se zařízení tvářilo jako modem. Může se stát, že co píšete v Putty neuvidíte.

at^setport="ff;10,12,16,A1,A2"

Protip: Pokud si chceme zjistit aktuální konfigurace, třeba kvůli budoucí obnově, použijte příkaz

at^setport?

Alternativně můžeme nastavit preferenci LTE sítí před 3G a 2G

AT^SYSCFGEX="030201",3FFFFFFF,0,2,800C5,,

Mimochodem, ^ se píše jako ALT+094 Veselý obličej

Nyní můžeme modem připojit do FortiGate a nakonfigurovat ho klasickým způsobem

config system modem
    set status enable
    set auto-dial enable
    set phone1 "*99***1#"
    set extra-init1 "at+cgdcont=1,\"ip\",\"internet.t-mobile.cz\""
    set altmode disable
    set distance 15
end