Zwischenstufen
Vermittler kommunizieren mit Clientanwendungen, damit sie Zertifikatanforderungen übermitteln können, und (vorausgesetzt, die Anforderung führt zu einem ausgestellten Zertifikat) zum Herunterladen des ausgestellten Zertifikats auf den Client. Jedes Transportschichtprotokoll erfordert einen eigenen Vermittler.
Microsoft Certificate Services wird mit einem Vermittler (den Webregistrierungsseiten) für HTTP ausgeliefert. Ein weiteres Beispiel für einen Vermittler ist das MMC-Snap-In Microsoft Windows-Zertifikate (mit dem der Zertifikatanforderungs-Assistent aufgerufen werden kann). Wenn andere Transportschichtprotokolle mit Zertifikatdiensten verwendet werden sollen, kann ein Entwickler einen Vermittler für jedes gewünschte Transportschichtprotokoll erstellen.
Vermittler kommunizieren mit Certificate Services über die ICertRequest - und ICertConfig-Schnittstellen , die vom Servermodul bereitgestellt werden. Die ICertRequest::Submit-Methode wird verwendet, um eine Zertifikatanforderung zu übermitteln, und ICertRequest::GetCertificate wird verwendet, um das resultierende ausgestellte Zertifikat abzurufen. In ähnlicher Weise wird ICertConfig::GetConfig verwendet, um zu bestimmen, welche Zertifizierungsstelle zum Ausstellen des Zertifikats verwendet werden kann.
Ein Vermittler ist nicht sprachabhängig. Es kann ein Programm sein, das in C++, Visual Basic, Java, Skript oder einer anderen Sprache geschrieben wurde.
Zusätzlich zum Sammeln von Daten vom Client zum Erstellen einer Zertifikatanforderung kann ein Vermittler Anforderungsattribute angeben. Anforderungen, die an eine Zertifizierungsstelle gesendet werden, die das Unternehmensrichtlinienmodul ausführt, müssen den Typ des angeforderten Zertifikats angeben, indem sie entweder ein CertificateTemplate-Attribut oder eine Zertifikatvorlagenerweiterung in der Anforderung selbst angeben.
Beachten Sie, dass während der Erstellung einer Zertifikatanforderung Entwickler (und Vermittler) für die Geheimhaltung des privaten Schlüssels verantwortlich sind. Nachdem ein privater Schlüssel kompromittiert wurde (die Vertraulichkeit verloren gegangen ist), ist er nutzlos.
Die Webregistrierungsseiten für Zertifikatdienste verwenden die Zertifikatregistrierungsschnittstellen, die private Schlüssel schützen, indem sie auf der Arbeitsstation generiert werden. Zusätzlich zur Geheimhaltung des privaten Schlüssels ermöglicht das Zertifikatregistrierungssteuerelement einem Vermittler, den Kryptografiedienstanbieter, die Schlüsselspezifikation, die Schlüsselstärke und den Hashalgorithmus anzugeben.
Das MMC-Snap-In Zertifikate verwendet auch das Zertifikatregistrierungssteuerelement (Xenroll.dll). Wenn die Zertifikatdienste-Webregistrierungsseiten jedoch dazu führen, dass die Zertifikatregistrierungssteuerungsressource (Xenroll.dll) bei Bedarf auf den Client heruntergeladen wird, wird das MMC-Snap-In Zertifikate in einer Umgebung ausgeführt, in der Xenroll.dll bereits eine verfügbare Ressource ist.
Zusätzlich zu ICertRequest und ICertConfig finden Entwickler von Vermittlern möglicherweise die Zertifikatregistrierungsschnittstellen und die Smartcardregistrierungssteuerung als nützlich.