Windows Server Certificate Authority-Website-Anpassung - Wie Man

Windows Server Certificate Authority-Website-Anpassung

Ich musste mehr Standardeinstellungen festlegen, als durch das Bearbeiten von certdat.inc zulässig waren, sodass ich die Seiten anpassen musste, die zur Darstellung der CERTSRV-Website verwendet wurden.

3 Schritte insgesamt

Schritt 1: Ich wollte, dass "Microsoft Enhanced RSA und AES Cryptographic Provider" der Standard-CSP in der Dropdown-Liste ist. Dies erfordert einige Arbeit an der GetCSPList () - Funktion in certsgcl.inc, die dank der Hilfe von jemandem, der ASP schreiben kann, jetzt so funktioniert:

(Änderungen am Originalcode hier sind mit *** gekennzeichnet)

'-----------------------------------------------------------------
'Zu lokalisierende Zeichenfolgen
Const L_NoCSPs_ErrorMessage = "(Keine CSPs gefunden!)"
Const EnhancedCSPString = "Microsoft Enhanced RSA und AES Cryptographic Provider"
Const BaseCSPString = "Microsoft Base Cryptographic Provider"

Funktion GetCSPList ()
On Error Resume Next
Dim nProvType, nDefaultCSP, nBaseCSP, nCSPIndex
nDefaultCSP = -1
nBaseCSP = -1
„Bereiten Sie sich darauf vor, zu zählen, wie viele CSPs durch Auswahl erreicht werden.
Dim nCSPOptionsCount
nCSPOptionsCount = -1
Dim CspInformations
Dim CspInformation
Legen Sie CspInformations = g_objCSPInformations fest
'Wenn es keine CSPs gibt, sind wir irgendwie festgefahren
Wenn 0 = CspInformations.Count Then
Setze oElement = document.createElement ("Option")
oElement.text = L_NoCSPs_ErrorMessage
document.UIForm.lbCSP.Options.Objekt hinzufügen
Sonst
Für nCSPIndex = CERTENROLL_INDEX_BASE zu CspInformations.Count-1 + CERTENROLL_INDEX_BASE
Dim sProviderName
Dimoption
Setze CspInformation = CspInformations.ItemByIndex (nCSPIndex)
Wenn True = CspInformation.LegacyCsp Then
sProviderName = CspInformation.Name
nProvType = CspInformation.Type
Set oOption = document.createElement ("Option")
oOption.text = sProviderName
oOption.Value = nProvType
document.UIForm.lbCSP.add (oOption)
'Inkrementierung der Anzahl gültiger CSPs ***
nCSPOptionsCount = nCSPOptionsCount + 1
Wenn InStr (sProviderName, EnhancedCSPString) <> 0 Dann
oOption.selected = True
'Verwenden Sie die Anzahl der gültigen CSPs anstelle des Index der For-Schleife. ***
'nDefaultCSP = nCSPIndex
nDefaultCSP = nCSPOptionsCount
Ende wenn
Wenn InStr (sProviderName, BaseCSPString) <> 0 Dann
'erinnere mich einfach an den Basis-CSP-Index
nBaseCSP = nCSPIndex
Ende wenn
Ende wenn
Nächster
End If 'wenn 0 == CspInformations.Count
'Den Ladetext entfernen
document.UIForm.lbCSP.remove (0)
'Wählen Sie den Standardanbieter aus
Wenn -1 = nDefaultCSP Dann
'kein verbesserter csp, wie wäre es mit der Basis
Wenn -1 <> nBaseCSP Dann
'ok, nimm Basis csp
nDefaultCSP = nBaseCSP
Ende wenn
Ende wenn
Wenn -1 <> nDefaultCSP Dann
'Wenn der erweiterte CSP gefunden wurde, wählen Sie ihn aus
document.UIForm.lbCSP.selectedIndex = nDefaultCSP
Ende wenn
Wenn -1 = nDefaultCSP Dann
Wenn 0 <nCSPIndex Then
Nun, die beste Wette ist die erste verfügbare
document.UIForm.lbCSP.selectedIndex = 0
Ende wenn
Ende wenn
'den Rückgabewert setzen und beenden
Wenn 0 <> Err.Nummer Dann
GetCSPList = Err.Number
ElseIf 0 = nCSPIndex Dann
'signalisieren keine Elemente mit -1
GetCSPList = -1
Sonst
GetCSPList = 0
Ende wenn
Funktion beenden

Schritt 2: Ich wollte auch, dass die Standardschlüsselgröße 2048 ist.

Dies erforderte die Arbeit an der MyGetKeyLen () - Funktion in certrqma.asp wie folgt. Sie werden feststellen, dass wir die Entscheidung getroffen haben, anzunehmen, dass CSP ein Minimum von 2048 unterstützen würden, was vernünftig erschien, da 1024 heute offiziell zu klein ist.

Zuerst setzen wir in certrqma.asp den Standard in den // Convenience-Konstanten, um die Lesbarkeit zu verbessern:
var KEY_LEN_MY_DEFAULT = 2048;
Dann ändern wir die Funktion MyGetKeyLen () wie folgt:
(Änderungen am Originalcode hier sind mit *** gekennzeichnet)

Funktion MyGetKeyLen (nSizeSpec, bExchange)
On Error Resume Next
Dim nKeySpec
Wenn True = bExchange Then
nKeySpec = XEKL_KEYSPEC_KEYX
Sonst
nKeySpec = XEKL_KEYSPEC_SIG
Ende wenn
MyGetKeyLen = XE_PrivateKey_GetKeyLenEx (g_objPrivateKey, nSizeSpec, nKeySpec)
'Vergleichen Sie die zurückgegebene Schlüsselgröße und erhöhen Sie sie bei Bedarf. ***
Wenn XEKL_KEYSIZE_DEFAULT = nSizeSpec Then
Wenn MyGetKeyLen <KEY_LEN_MY_DEFAULT, dann
MyGetKeyLen = KEY_LEN_MY_DEFAULT
Ende wenn
Ende wenn
Wenn 0 <> Err.Nummer Dann
Wenn XEKL_KEYSIZE_MIN = nSizeSpec Then
MyGetKeyLen = KEY_LEN_MIN_DEFAULT
ElseIf XEKL_KEYSIZE_MAX = nSizeSpec Dann
MyGetKeyLen = KEY_LEN_MAX_DEFAULT
ElseIf XEKL_KEYSIZE_DEFAULT = nSizeSpec Dann
'Versuch 1024
MyGetKeyLen = KEY_LEN_MY_DEFAULT
Sonst
'nehme an, XEKL_KEYSIZE_INC = nSizeSpec
MyGetKeyLen = KEY_LEN_INC_DEFAULT
Ende wenn
Ende wenn
Wenn XEKL_KEYSIZE_INC = nSizeSpec und 0 = MyGetKeyLen Then
MyGetKeyLen = KEY_LEN_INC_DEFAULT
Ende wenn
Funktion beenden

Schritt 3: Schließlich sollte das Kontrollkästchen "Schlüssel als exportierbar markieren" standardmäßig aktiviert sein. Dies ist das einfachste Bit, nimmt jedoch wieder an, dass das Erzwingen keine Probleme verursachen wird. Es wird nicht geprüft, ob der von Ihnen ausgewählte CSP exportierbare Schlüssel unterstützt.

Fügen Sie einfach checked = "true" hier ein:

Schlüssel als exportierbar markieren

Es funktioniert und bedeutet, dass Benutzer ihren Namen und ihre E-Mail-Adresse eingeben müssen, alles andere wird für sie erledigt. So ist es sicherer.