IIS 7.0 - certyfikat SSL - odnowienie czy nowy?

13

Jeden z moich certyfikatów SSL (tylko prosta weryfikacja domeny) wkrótce wygaśnie na serwerze Windows 2003 IIS 7.0.

Dostałem lepszą ofertę od innego dostawcy, a faceci, którzy pierwotnie wydali mój certyfikat, nie chcą negocjować niższych cen.

W każdym razie - przechodząc przez kreatora certyfikatów w IIS, mam opcję „odnowienia” lub „odinstalowania”, a następnie zainstalowania nowego certyfikatu.

Więc - czy mogę użyć opcji „odnów”, aby utworzyć żądanie certyfikatu i przekazać go nowemu dostawcy, czy też muszę zacząć od „nowego” żądania? Czy dla nowego dostawcy będzie miało znaczenie to, że poprzedni certyfikat został wydany przez innego sygnatariusza?

Problem polega na tym, że nie chcę zatrzymywać serwera (przynajmniej części zabezpieczonej) z powodu usunięcia starego certyfikatu i utworzenia nowego CSR, i czekam na zainstalowanie nowego certyfikatu.

A może istnieje opcja przygotowania nowego CSR bez usuwania starego certyfikatu?

Słoneczny
źródło

Odpowiedzi:

7

Wystarczy utworzyć tymczasową stronę internetową z IIS 6.0. Usługi IIS 7.0 umożliwiają tworzenie wielu oczekujących żądań jednocześnie.

W IIS 7.0 faktycznie występuje błąd, który powoduje, że funkcja odnowienia generuje CSR z bardzo dużym kluczem (znacznie większym niż chcesz). Z tego powodu zaleca się utworzenie nowego oczekującego żądania zamiast wybrania opcji odnowienia. Po zainstalowaniu wystarczy zmienić powiązanie SSL na stronie internetowej i nie będzie żadnych przestojów. Pozwala to również generować nowy klucz przy każdym odnawianiu, co zwiększa bezpieczeństwo.

Dostawca certyfikatów (CA) nie dba o to, czy korzystasz z nowej opcji, czy z opcji odnawiania. Możesz skorzystać z dowolnej opcji, niezależnie od tego, czy przebywasz w tym samym urzędzie certyfikacji, czy zamawiasz nową.

Robert
źródło
7

Odnowienie certyfikatu pozwala zachować ten sam klucz publiczny i prywatny podczas aktualizacji daty ważności certyfikatu. Zaletą tego jest to, że musiałeś przechowywać odcisk palca na routerze lub coś takiego. Uważam, że ten sam wydający urząd certyfikacji jest wymagany do odnowienia żądania, więc może być po prostu łatwiej wygenerować nowe żądanie ręcznie.

Aby wygenerować nowe żądanie bez wysadzenia IIS

Możesz utworzyć żądanie certyfikatu ręcznie i przesłać je. Po uzyskaniu nowego certyfikatu możesz po prostu zmienić certyfikat, którego szuka IIS7. Jak ręcznie utworzyć certyfikat SSL serwera WWW .

Prostą zasadą tego procesu jest utworzenie pliku inf z wymaganymi informacjami, uruchom certreq -new file.inf file.req. Po uzyskaniu pliku żądania możesz go przesłać do urzędu certyfikacji, w którym chcesz wystawić certyfikat, a następnie zaakceptować klucz publiczny, który wysłali do ciebie z poleceniemcertreq -accept file-from-ca.req

Przykładowy wniosek.inf

[Version]
Signature="$Windows NT$"

[NewRequest]
Subject = "CN=fully.qualified.domain.name, OU=Organizational Unit, O=Company, L=City, S=State, C=Country"
KeySpec = 1
KeyLength = 2048
HashAlgorithm = SHA256
Exportable = FALSE
MachineKeySet = TRUE
SMIME = FALSE
PrivateKeyArchive = FALSE
UserProtected = FALSE
UseExistingKeySet = FALSE
RequestType = PKCS10
KeyUsage = 0xa0
ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
FriendlyName = ""

[EnhancedKeyUsageExtension]
OID=1.3.6.1.5.5.7.3.1 ; Server Authentication

[RequestAttributes]
CertificateTemplate = WebServer

[Extensions]
2.5.29.17 = "{text}"
_continue_ = "DNS=&"
_continue_ = "DNS="

Powyższy przykład inf jest tym, którego używam wewnętrznie dla własnego CA, ale można go dostosować do pracy w większości środowisk. Możesz ustawić ExportablePRAWDA, jeśli chcesz móc zarchiwizować swój klucz. Jest FriendlyNameto całkowicie opcjonalne, a Extensionssekcja dotyczy używania alternatywnych nazw DNS (alternatywnych nazw podmiotów).

Przykładem wpisu SAN może być:

[Extensions]
2.5.29.17 = "{text}"
_continue_ = "DNS=example.com&"
_continue_ = "DNS=www.example.com&"
_continue_ = "DNS=secure.example.com"

Pozwoliłoby to na użycie tego samego certyfikatu z trzema powyższymi witrynami bez narzekań na niedopasowanie nazwy (w nowoczesnych przeglądarkach - nie sądzę, że IE6 to rozumie). Ważne jest, aby podać pełną nazwę domeny (CN wiersza tematu) w SAN, jeśli ją skonfigurujesz. Możesz także całkowicie usunąć obszar rozszerzeń, jeśli nie potrzebujesz wielu nazw domen (również niektóre urzędy certyfikacji mogą go nie obsługiwać).

Proces

Po zapisaniu powyższych informacji (wiem, że to dużo). Wykonaj następujące kroki:

  1. Otwórz wiersz polecenia i przejdź do katalogu, w którym zapisałeś powyższe inf.
  2. Biegać certreq -new above.inf request.req
  3. Prześlij plik request.req do urzędu certyfikacji. Przetwarzają go i zatwierdzają / odrzucają.
  4. Po ich zatwierdzeniu powinni odesłać ci klucz publiczny w pliku .cer.
  5. Uruchom, certreq -accept file-from-ca.ceraby zakończyć konfigurowanie klucza.

Powodzenia!

Edytować

Pełna składnia dla certreq i pliku inf znajduje się w dodatku 3: Składnia Certreq.exe (Windows Server 2003 SP1) . FriendlyNameI HashAlgorithmsą Server 2008 (i R2) tylko. Możesz wyświetlić listę obsługiwanych dostawców usług kryptograficznych, uruchamiając polecenie certutil -csplisti sprawdzając dane wyjściowe. Obecne okno dodatku SP2 dla systemu Windows 2003 ma „Dostawcę kryptograficznego Microsoft RSA SChannel” wymienionego jako dostępny dostawca, więc upewnij się, że w pliku są odpowiednio ustawione cytaty i że wpis znajduje się tylko w jednej linii (bez zawijania lub wielu linii).

Możesz także zmienić ProviderName na ProviderType i użyć numeru podanego w danych wyjściowych certreq -csplist.

W takim przypadku otrzymuję następujące dane wyjściowe:

Provider Name: Microsoft RSA SChannel Cryptographic Provider
Provider Type: 12

Więc mogę albo użyć

ProvderName = "Microsoft RSA SChannel Cryptographic Provider"

lub

ProviderType = 12
Jozuego
źródło
Dzięki. Jak przygotować to ręcznie?
Sunny,
Ponadto - wciąż nierozstrzygnięte pytanie - czy „odnowienie” ma znaczenie, że certyfikat zostanie wydany przez nowego dostawcę?
Sunny,
O ile wiem odnowienie wymaga tego samego wystawiającego urzędu certyfikacji, aby wysłać ci odświeżony certyfikat, ponieważ odnowienie zachowuje ten sam klucz publiczny i prywatny. Inny urząd certyfikacji będzie miał inny zestaw kluczy do podpisania, więc twoja para kluczy publiczny / prywatny będzie inna.
Joshua
Joshua, zgłasza to: Procesor żądania certyfikatu: Dane są nieprawidłowe. 0x8007000d (WIN32: 13) mycert.inf (HashAl algorytm = „SHA256”). Jesteś pewien, że to powinno zadziałać? W oryginale artykuł, do którego linkujesz, nie ma takiego ustawienia.
Sunny,
Usunąłem ustawienia HashAlgorytm i FriendlyName (ponieważ narzekał na nie) i nie otrzymuję: Procesor żądania certyfikatu: Typ dostawcy nie zgadza się z zarejestrowaną wartością. 0x8009001b (-2146893797). Szkoda
Sunny,
1

OK, aby częściowo odpowiedzieć na moje pytanie - część tworzenia / używania nowego certyfikatu bez usuwania istniejącego (tj. Bez zatrzymywania serwera), znalazłem dobry opis na stronie Comodo - w zasadzie muszę stworzyć „tymczasową” stronę na serwerze i użyj go, aby utworzyć nowy raport CSR, wysłać go do podpisania oraz odebrać i zaimportować certyfikat.

Następnie na mojej głównej (rzeczywistej) stronie muszę wymienić bieżący certyfikat, a następnie usunąć tymczasowy.

Słoneczny
źródło