Archiwum kategorii: Windows Server

AD CS i Code Signing

Cel:

  • Zdobycie certyfikatu do podpisywania kodu. Podpisany kod będzie działał tylko w domenie firmowej.

Jak można podejść do tematu?

  1. Kupić sobie swój własny certyfikat programistyczny i nim podpisać stworzoną aplikację – głównym urzędem certyfikacji będzie verisign czy digicert – generalnie wymaganie zostanie spełnione. Cert jest poprawny i wszystko hula. Płaci się tylko wcale nie małe pieniądze – w tej chwili na rok można taki certyfikat wygenerować za 178$ (bez „Instant Reputation with Microsoft Smartscreen Filter”), a z 331$. Niby biedni nie jesteśmy, ale to i tak znaczna kwota.
  2. Wygenerować certyfikat poprzez AD CS – (Active Directory Certificate Services).

Pochylę się dzisiaj i podzielę tą jakże tajemną wiedzą jak zdobyć certyfikat w domenie.

Zanim zaczniesz – oczywiście musisz mieć przygotowaną infrastrukturę – masz firmę – masz bizspark’a – pikuś, nie? coś wymyślisz  Potrzebujemy domeny oraz zainstalowanego i skonfigurowanego AD CS. Instalacja i konfiguracja jest klikalna – z tym nie ma żadnych powazniejszych problemów.

[1] Generowanie kodu CSR. Czym jest kod CSR? Z ang. „żądanie podpisania certyfikatu” (Certificate Signing Request).

Jak się to robi?

Na swojej zwykłej stacji roboczej uruchom nowe zadanie (win+R), wpisz w okienko mmc. Dodaj/usuń przystawkę, wybierz certyfikaty->”Moje konto użyszkodnika” i ok.

Rozwijamy drzewo certyfikatów i przechodzimy do Osobisty/Certyfikaty.

Klikamy prawym myszy na certyfikaty, wybieramy „wszystkie zadania”->”Operacje zaawansowane”->”Utwórz żądanie niestandardowe..”.

Pojawia się piękne okienko z opisem rejestracji certyfikatów, przeklikujemy.

Wybieramy zasady rejestracji certyfikatu na te z usługi Active Directory i przechodzimy dalej.

Następnie wybieramy szablon żądania certyfikacyjnego. W moim przypadku chce certyfikat do podpisywania kodu – to wybieram nomen omen: „Podpisywanie kodu”. Uwaga! W tym miejscu dostępne są tylko standardowe szablony – i tak wybieramy – bo przykład dotyczy mojej domeny, ale zdarzyło mi się już wygenerować CSR z takiego szablonu – i został on odrzucony przez admin’a, bo on zdefiniował swoje własne szablony… w tym przypadku należy powiedzieć adminowi żeby sam sobie wygenerował CSR 

Po wybraniu szablonu możemy teraz zająć się właściwościami naszego CSR. Klikamy właściwości – zasad rejestracji usługi Active Directory.

Wypełniamy przyjazną nazwę + opis.

Wybieramy dane do certyfikatu. Ja wypełniłem prawie wszystko.

Zaznaczamy, że chcemy eksportować klucz prywatny.

I zapisujemy do pliku.

W widoku „przystawki” w żądaniach rejestracji certyfikatu powinniśmy zobaczyć nasz „pusty” certyfikat.

[2] Podpisanie CSR w CA (Certification Authority)

Uruchamiamy na serwerze CA. Prawym-> „All Tasks”->”Submit new request”. Wybieramy CSR, który stworzyliśmy w kroku 1.

Po zaimportowaniu CSR’a, pojawi się on nam w folderze „Pending Request”.

To co teraz musimy zrobić to right click na certyfikacie i wybieramy issue.

Nasz certyfikat pojawi się teraz w folderze Issued Certificates.

Zostało teraz tylko wyeksportować klucz publiczny. Można to zrobić np. przez dwuklik certyfikatu oraz kliknięciu „copy to file”.

Wyeksportowany klucz przenosimy na maszynę na której wygenerowaliśmy CSR’a i instalujemy w lokalizacji w której podpowiada instalator.

Odświeżamy widok w mmc z certyfikatami. Mamy nowy podpisany certyfikat z eksportowalnym kluczem prywatnym. Teraz można go użyć np. do podpisania addin’a czy stworzenia certyfikatu w formacie snk do podpisywania bibliotek.