3 min to read
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?
- 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.
- 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.
Comments