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ć Exportable
PRAWDA, jeśli chcesz móc zarchiwizować swój klucz. Jest FriendlyName
to całkowicie opcjonalne, a Extensions
sekcja 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:
- Otwórz wiersz polecenia i przejdź do katalogu, w którym zapisałeś powyższe inf.
- Biegać
certreq -new above.inf request.req
- Prześlij plik request.req do urzędu certyfikacji. Przetwarzają go i zatwierdzają / odrzucają.
- Po ich zatwierdzeniu powinni odesłać ci klucz publiczny w pliku .cer.
- Uruchom,
certreq -accept file-from-ca.cer
aby 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) . FriendlyName
I HashAlgorithm
są Server 2008 (i R2) tylko. Możesz wyświetlić listę obsługiwanych dostawców usług kryptograficznych, uruchamiając polecenie certutil -csplist
i 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