IIS a SHA256 certifikát

Vypršel mi StartSSL certifikát, tak jsem si před obnovou řekl, že už je na čase obměnit SHA1 za SHA256. No jo, jenže IIS Manager ve Windows Serveru 2012 R2 vyrobí CSR automaticky jen s SHA1. Tak dobrá, nahodím mmc.exe, přidám si Certificates snap-in a holt ten požadavek vyrobím ručně. V tu chvíli jsem netušil, jakou zábavu jsem si připravil pro pár hodin v průběhu několika dalších dní.

Úvodem jsem dal Request New Certificate…. Špatně, správně je nutné zvolit Advanced Operations a následně Create Custom Request…

IIS_SHA256

Hurá, další obrazovka je bez problémů Smile

IIS_SHA256_2

Teď je třeba zvolit “Proceed without enrollment policy”.

IIS_SHA256_3

Další obrazovka je zase v pohodě, Next.

IIS_SHA256_4

Zato následující okno stojí za to. Je třeba klepnout na šipečku směřující dolů.

IIS_SHA256_5

Jedině tak bude totiž vidět magické tlačítko Properties.

IIS_SHA256_6

Teď si vcelku běžným způsobem vyplním vlastnosti certifikátu, nejprve Friendly name.

IIS_SHA256_7

Následně CN, O, OU, L, CZ. U StartSSL je to stejně docela jedno, oni si to ve výsledném certifikátu stejně vše přepíšou.

IIS_SHA256_8

Na co je ale potřeba dát extra pozor, jsou rozbalovací roletky na záložce Private Key.

IIS_SHA256_9

Nechci velikost klíče 1024, nýbrž minimálně 2048. Navíc chci mít klíč exportovatelný (což se ukáže jako velmi důležité v dalším kroku). Následně rozbalím Select Hash Algorithm.

IIS_SHA256_10

A ejhle, to je to správné místo, kde je třeba vyměnit SHA1 za SHA256.

IIS_SHA256_11

Tím jsem dokončil nastavení základních parametrů, klepnu na OK a následně na Next.

IIS_SHA256_12

CA není dostupná online, takže uložím do souboru a hlavně zvolím Base 64 pro snazší kopírování přes clipboard v dalším kroku.

IIS_SHA256_13

Po stisknutí tlačítka Finish můžu zkontrolovat, že v Certificate Enrollment Requests se nachází privátní klíč, z nějž byl odvozen certifikační požadavek. V případě, kdy se jedná o důležitý certifikát nebo odezva od externí CA může chvíli trvat, je doporučeno tento privátní klíč zazálohovat do PFX a zkopírovat na bezpečné místo.

IIS_SHA256_14

V následujícím kroku, který zde nedokumentuji, jsem certifikační požadavek zadal do StartSSL CA a získal zpět podepsanou odpověď. No jo, jenže co teď? Co s tím souborem? Rozhodl jsem se zkusit stejný postup, jako kdyby šlo o SHA1 certifikát, který bych začal generovat v IIS Manageru.

IIS_SHA256_15

Zvolím Complete Certificate Request…

IIS_SHA256_16

Nyní odkážu na soubor potvrzený certifikační autoritou. Chtěl bych použít SNI, takže jsem zkusil zadat “Web Hosting”, ale to mi vyhodilo chybu, kterou jsem si ani nepoznamenal. Vrátil jsem se o krok zpět a zvolil Personal.

IIS_SHA256_17

Výborně, ono to prošlo. V úložišti Personal je nový certifikát. Poklepám na něj – a kruci, on není spárovaný s privátním klíčem. Následovalo docela dlouhé bádání, co s tím. Nakonec pomohl návod v Entrust KB. Zobrazil jsem si nově vystavený certifikát, poznamenal jeho Serial number a v administrátorském příkazovém řádku zadal toto:

certutil -repairstore my 06848146975c7e

Vypsalo to řadu parametrů a na konci tuto nadějnou hlášku:

CertUtil: -repairstore command completed successfully.

Musel jsem obnovit celý Certificates snap-in, ale po dvojkliku na certifikát vidím, že již mám k dispozici certifikát i s privátním klíčem.

IIS_SHA256_18

Jelikož byl ten postup krapet kostrbatý, je třeba dořešit pár drobností. Zaprvé, Certificate Enrollment Request nebyl smazán. Nyní je bezpečné jej smáznout. Zadruhé, chci využít SNI, takže úložiště Personal je mi k ničemu. Certifikát totiž potřebuji ve větvi Web Hosting. Zaplať pánbůh, že jsem zvolil volbu povolující export privátního klíče. Jednak můžu certifikát zazálohovat do PFX a opět odkopírovat na bezpečné místo. No a hlavně můžu certifikát naimportovat do větve Web Hosting a smáznout v Personal.

Nevím, zdali a kde jsem udělal nějakou chybu, každopádně si příště docela rozmyslím, jestli si budu generovat vlastní SHA256 certifikační požadavek nebo se spolehnu na možnosti StartSSL CA, která mi v Control Panelu nabízí možnost vygenerování privátního i veřejného klíče. Můj postup je principielně bezpečnější, navíc zrovna Windows nejsou kamarád s PEM klíči a musel bych vytvářet PFX přes OpenSSL. Na druhou stranu, celý zde dokumentovaný postup je také příšerný –. a to je hlavním důvodem, proč jsem tenhle post vytvořil – za měsíc už nebudu tušit, jak jsem ten certifikát vyrobil…

Zobrazit komentáře