<\/span>\nDNS CNAME<\/h4>\n
Der Webserver wird sp\u00e4ter mit einer http<\/em> Adresse in der\u00a0Root- sowie Enterprise- CA konfiguriert. Dabei wird der Ablageort der\u00a0Stelleninformationen fest in den ausgestellten Zertifikaten verdrahtet. Eine \u00c4nderung w\u00fcrde eine umkonfiguration der CAs bedeuten, sowie ein erneutes Ausstellen, Verteilen und Einbinden s\u00e4mtlicher Zertifikate, die die ge\u00e4nderten Informationen beinhalten.<\/p>\nIn der\u00a0DNS Management Console, wird f\u00fcr die Zone\u00a0der Domain\u00a0ein Alias erstellt, z.B. PKI<\/em>, der auf den A- Record des Webservers zeigt. Der Alias hat den Vorteil, dass das Ziel jederzeit umgelegt werden kann<\/p>\n<\/span><\/span><\/p>\n <\/p>\n
Root CA, Standalone<\/h2>\n<\/span>\n1. CAPolicy.inf<\/h4>\n
Die CAPolicy.inf<\/em> ist die\u00a0Konfigurationsdatei, und wird bei der Installation der\u00a0Active Directory\u00a0Zertifikatsdienste (AD CS)<\/em>, sowie bei der Erneuerung des CA Zertifikats eingelesen. Der Name Active Directory<\/em> ist hier etwas ung\u00fcnstig gew\u00e4hlt.\u00a0Diese Rolle wird nicht nur f\u00fcr die\u00a0Domain integrierte (Enterprise), sondern auch f\u00fcr Standalone CAs installiert. F\u00fcr eine Grundinstalltion der Zertifizierungsstelle ist die CAPolicy.inf<\/em> nicht notwendig. In den meisten F\u00e4llen sind die Standardeinstellungen aber unpassend.<\/p>\nDie CAPolicy.inf<\/em> wird beim Setup im Ordner %windir% gesucht. Was mir nach wie vor passiert, ist die ausgeblendete Dateierweiterung. Bitte daran denken, dass bei einem neuen System nicht eine capolicy.inf.txt<\/em> verwendet wird. In diesem Fall wird das File ignoriert, und die Zertifizierungsstelle wird mit Standardeinstellungen installiert.<\/p>\n <\/p>\n
[Version]<\/span>
\nSignature= „$Windows NT$“<\/span><\/p>\n[PolicyStatementExtension]<\/span>
\nPolicies = LegalPolicy<\/span>
\nCritical = 0<\/span><\/p>\n[LegalPolicy]<\/span>
\nOID = 1.3.6.1.4.1.311.21.43<\/span>
\nNotice = „Root CA Legal policy statement“<\/span>
\nURL = „http:\/\/pki.spielwiese.local\/CertEnroll\/rootLegalPolicy.txt“<\/span>
\n[certsrv_server]<\/span>
\nrenewalkeylength=4096<\/span>
\nRenewalValidityPeriodUnits=30<\/span>
\nRenewalValidityPeriod=years<\/span><\/p>\nCRLPeriod = weeks<\/span>
\nCRLPeriodUnits = 27<\/span>
\nCRLDeltaPeriod = hours<\/span>
\nCRLDeltaPeriodUnits = 0<\/span>
\nDiscreteSignatureAlgorithm = 1<\/span><\/p>\n <\/p>\n
CRLDeltaPeriodUnits=0 <\/em>deaktiviert die Ver\u00f6ffentlichung von Delta Sperrlisten.<\/p>\nDer Bereich [LegalPolicy] ist f\u00fcr Certificate Policies (CP)<\/em>\u00a0und Certificate Practice Statements (CPS)<\/em> vorgesehen. Hinter der URL kann im Anschluss ein angepasstes Dokument gelegt werden. Die URL kann aber auch ins leere laufen, Hauptsache die URL wird in die Zertifikate \u00fcbernommen.<\/p>\n<\/span>\nDie Sperrlistenverteilungspunkte (Certificate Revocation List Distribution Point, CDP) und Zugriffe auf Stelleninformationen (Authority Information Access, AIA)\u00a0k\u00f6nnten mit den beiden Punkten unten bereits in der CAPolicy.inf definiert werden. Ich werde die Konfiguration aber manuell durchf\u00fchren, um zu vermeiden, dass bei einem erneuten Einlesen der .inf<\/em> Datei eine manuelle\u00a0\u00c4nderung zur\u00fcckgesetzt wird.<\/p>\n[CRLDistributionPoint] <\/span>
\nURL=http:\/\/pki.spielwiese.local\/CertEnroll\/<CaName><CRLNameSuffix><DeltaCRLAllowed>.crl <\/span><\/p>\n[AuthorityInformationAccess] <\/span>
\nURL=http:\/\/pki.spielwiese.local\/CertEnroll\/<ServerDNSName>_<CaName><CertificateName>.crt<\/span><\/p>\n<\/span>\ndie Platzhalter in\u00a0AIA und CDP werden in der Registry in entsprechende Variablen gesetzt. Die Registry Einstellungen werden beim Starten der CA eingelesen.<\/p>\n
\nHKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\CertSvc\\Configuration\\<CA_Name><\/span><\/address>\n<\/blockquote>\n%1 ServerDnsName<\/span>
\n %2 ServerShortName<\/span>
\n %3 CaName<\/span>
\n %4 CertificateName<\/span>
\n %5 DomainName<\/span>
\n %6 ConfigDN<\/span>
\n %7 CATruncatedName<\/span>
\n %8 CRLNameSuffix<\/span>
\n %9 DeltaCRLAllowed<\/span>
\n %10 CDPObjectClass<\/span>
\n %11 CAObjectClass<\/span><\/address>\n<\/span>\n2. Installation\u00a0 und Konfiguration der Rolle<\/h4>\n
die Installation und Konfiguration erfolgt mit der Powershell<\/p>\n
\nImport-Module ServerManager <\/span><\/address>\nAdd-WindowsFeature ADCS-Cert-Authority -IncludeManagementTools<\/span><\/address>\nInstall-AdcsCertificationAuthority -CAType StandaloneRootCA -KeyLength 4096 -HashAlgorithmName SHA256 -ValidityPeriod Years -ValidityPeriodUnits 30 -CACommonName Root-CA\u00a0-CryptoProviderName „RSA#Microsoft Software Key Storage Provider“<\/span><\/address>\n<\/blockquote>\n\u00a0<\/address>\n<\/span><\/p>\n\u00a03. \u00dcberpr\u00fcfen ob die CAPolicy.inf angewendet wurde<\/h4>\n
<\/p>\n
<\/p>\n
<\/p>\n
in den Eigenschaften des Root Zertifikates, ist die Legal Policy,<\/em>\u00a0<\/em>hinterlegt. Die Verzichtserkl\u00e4rung zeigt die Eigenschaften des Punktes Notice<\/em>, der Button Weitere Informationen<\/em> \u00f6ffnet die angegeben URL. Beides wurde in der CAPolicy.inf definiert.<\/p>\n<\/span><\/span><\/p>\n<\/p>\n
in den Eigenschaften der gesperrten Zertifikate\u00a0\u00fcberpr\u00fcfen, ob der in der CAPolicy.inf<\/em>\u00a0vorgegebene Intervall f\u00fcr das Ver\u00f6ffentlichen der Sperrliste \u00fcbernommen wurde, und keine Ver\u00f6ffentlichung von Deltasperrlisten durchgef\u00fcrht wird.<\/p>\n<\/span>\n4. Validity Period<\/h4>\n
mit dem Command Line Tool Certutil<\/em> wird die maximale G\u00fcltigkeitsdauer auszustellender Zertifikate ausgelesen. Dieser Wert gibt an, wie lange das Zertifikat f\u00fcr die Enterprise CA g\u00fcltig sein darf<\/p>\n\n# get validity period
\ncertutil -getreg ca\\validityperiod<\/span><\/em>
\n certutil -getreg ca\\validityperiodunits<\/span><\/em><\/address>\n<\/blockquote>\n <\/p>\n
Standard ist ein Jahr. Der Wert\u00a0wird\u00a0mit dem selben Befehl,\u00a0jedoch mit\u00a0der Option setreg<\/em> angepasst<\/p>\n\n# set validity period
\ncertutil -setreg ca\\validityperiodunits 10<\/span><\/address>\n<\/blockquote>\n<\/span>\nes sollte immer die Restlaufzeit des aktuellen Root CA Zertifikats\u00a0im Auge behalten werden. Die Laufzeit\u00a0eines auszustellenden Zertifikates kann nicht die Laufzeit des Zertifikats der ausstellenden CA \u00fcbersteigen. Hat z.B. das Zertifikat der Root CA noch 8 Jahre Laufzeit, kann es maximal Zertifikate mit 8 Jahren Laufzeit ausstellen. Als Faustregel gilt daher, dass \u00fcbergeordnete Instanzen mindestens eine doppelt so lange Laufzeit haben, und nach Ablauf der H\u00e4lfte erneuert werden. In meinem Setup sind das folgende:<\/p>\n
\n- Root CA 30 Jahre<\/li>\n
- Sub CA 10 Jahre<\/li>\n
- Laufzeit f\u00fcr Templates in Sub CA maximal 5 Jahre<\/li>\n<\/ul>\n<\/span>\n
5. Konfiguration von CDP\u00a0und AIA in der Root CA<\/h4>\n
in den Eigenschaften der Root CA unter dem Reiter Erweiterungen<\/em> werden die Sperrlisten Verteilungspunkte und Zugriff auf Stelleninformationen angepasst, die in ausgestellten Zertifikaten eingetragen werden.<\/p>\n<\/span>\nCDP<\/h5>\n
<\/p>\n
<\/p>\n
lokale Partition: Standard %windir%\\system32\\CertSrv\\CertEnroll\\….<\/strong><\/p>\n\n- \u00a0Sperrliste Ver\u00f6ffentlichen<\/li>\n<\/ul>\n<\/span>\n
file:\/\/<\/strong> \u00a0(eine\u00a0Abfrage \u00fcber UNC Pfade funktioniert technisch\u00a0nicht)<\/p>\n\n- keine Option w\u00e4hlen<\/li>\n<\/ul>\n<\/span>\n
ldap:\u00a0 Eintrag entfernen, und an die Dom\u00e4ne angepassten Eintrag setzen (z.B. spielwiese.local)<\/strong>
\nldap:\/\/\/CN=<CATruncatedName><CRLNameSuffix>,CN=<ServerShortName>,CN=CDP,CN=Public Key Services,CN=Services,CN=Configuration,DC=spielwiese,DC=local<\/p>\n\n- \u00a0In CDP Erweiterung des ausgestellten Zertifikats einbeziehen<\/li>\n<\/ul>\n<\/span>\n
http:\/\/ Eintrag entfernen, und an die Dom\u00e4ne angepassten Eintrag setzen (DNS Alias „pki“ auf Webserver)<\/strong>
\nhttp:\/\/pki.spielwiese.local\/CertEnroll\/<CaName><CRLNameSuffix><DeltaCRLAllowed>.crl<\/p>\n\n- In CDP Erweiterung des ausgestellten Zertifikats einbeziehen<\/li>\n<\/ul>\n
<\/p>\n
<\/p>\n
<\/p>\n
\nAIA<\/h5>\n
<\/p>\n
<\/p>\n
lokale Partition: Standard %windir%\\system32\\CertSrv\\CertEnroll\\….<\/strong><\/p>\n\n- keine Option w\u00e4hlen<\/li>\n<\/ul>\n<\/span>\n
file:\/\/<\/strong><\/p>\n\n- keine Option w\u00e4hlen<\/li>\n<\/ul>\n<\/span>\n
ldap:\u00a0 Eintrag entfernen, und an die Dom\u00e4ne angepassten Eintrag setzen (z.B. spielwiese.local)
\n<\/strong>ldap:\/\/\/CN=<CATruncatedName>,CN=AIA,CN=Public Key Services,CN=Services,CN=Configuration,DC=spielwiese,DC=local<\/p>\n\n- In AIA Erweiterung des ausgestellten Zertifikats einbeziehen<\/li>\n<\/ul>\n<\/span>\n
http:\/\/ Eintrag entfernen, und an die Dom\u00e4ne angepassten Eintrag setzen (DNS Alias „pki“ auf Webserver)
\n<\/strong>http:\/\/pki.spielwiese.local\/CertEnroll\/<ServerDNSName>_<CaName><CertificateName>.crt<\/p>\n\n- In AIA Erweiterung des ausgestellten Zertifikats einbeziehen<\/li>\n<\/ul>\n<\/span>\n
\n<\/span>\nDamit\u00a0die \u00c4nderungen wirksam werden, wird beim Button \u00dcbernehmen ein Neustart des Zertifizierungsstelle angefordert.<\/p>\n<\/span>\nmit der Command Line k\u00f6nnen die gesetzten Pfade aus der Registry ausgelesen werden<\/p>\n
\ncertutil -getreg\u00a0 CA\\CRLPublicationURLs<\/span>
\ncertutil -getreg\u00a0 CA\\CACertPublicationURLs<\/span><\/address>\n<\/blockquote>\nUnter diesem Registry Pfad\u00a0liegen die Konfigurationsparameter, es ist nicht verkehrt ein Backup mittels Export Funktion im Registry Editor zu machen.<\/p>\n
\nHKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\CertSvc\\Configuration\\<CA_Name><\/span><\/em><\/address>\n<\/blockquote>\n<\/span>\n <\/p>\n
6. Publish Root CA Cert und CRL<\/h4>\n
unter C:\\Windows\\System32\\CertSrv\\CertEnroll<\/em> liegen zwei Files, ein .crl (Sperrliste) sowie ein .crt (Zertifikat).<\/p>\nDer Root-CA Server\u00a0verf\u00fcgt im besten Fall \u00fcber keine\u00a0Netzwerkverbindung.\u00a0Er wird nur kurz, alle 27 Wochen oder vorher, zur Erneuerung der Sperrliste hochgefahren. Wenn eine aktuelle Sperrliste erstellt, und wegkopiert wurde, kann der Server wieder in den Safe. Das Zertifikat wird erst in 15 Jahren erneuert<\/p>\n
Die\u00a0Files werden, f\u00fcr den http<\/em> Abruf auf den Webserver kopiert, in das Verzeichnis c:\\inetpub\\CertEnroll, und\u00a0sind\u00a0\u00fcber\u00a0http:\/\/pki.spielwiese.local\/Certenroll<\/em> abrufbar.\u00a0F\u00fcr\u00a0die Ver\u00f6ffentlichung im Active Directory, werden die\u00a0selben Dateien\u00a0auf ein Domain Member mit ldap<\/em> Zugriff kopiert, z.b. den Enterprise CA Server.<\/p>\nMit den folgenden Command Line Befehlen werden die Dateien in die Configuration Partition<\/em> des Active Directory aufgenommen. Dies bewirkt im Hintergrund, dass das Zertifikat in den Zertifikatsspeicher f\u00fcr vertrauensw\u00fcrdige Stammzertifizierungsstellen aller Dom\u00e4nen Computer aufgenommen wird<\/p>\ncertutil -f -dspublish <certificate_file>.crt <Root-CA Name><\/em><\/span>
\n certutil -f -dspublish <revocation_list_file>.crl <Root-CA Servername><\/em><\/span><\/p><\/blockquote>\nDer Root-CA Servername muss der NetBios Kurzname des Servers sein. Durch die Angabe von CN=<ServerShortName>\u00a0<\/em>im Pfad der Sperrlisten Verteilungspunkte, wird in der Configuration Partition des AD<\/em> unter CDP<\/em> der Servername erwartet.<\/p>\n<\/span>\nDas wars fast schon, die CA ist konfiguriert, und das Zertifikat, sowie die Sperrliste ist an zwei unabh\u00e4ngigen Abrufm\u00f6glichkeiten hinterlegt worden. Wenn im n\u00e4chsten Schritt das Enterprise CA Zertifikat ausgestellt wurde,\u00a0wird damit, die darin hinterlegten Pfade auf Richtigkeit\u00a0gepr\u00fcft. Anschliessend wird die Root CA heruntergefahren.<\/p>\n
<\/span><\/span><\/p>\n <\/p>\n
Enterprise CA<\/h2>\n
<\/p>\n
1. CAPolicy.inf<\/h4>\n
Eine\u00a0CAPolicy.inf<\/em> wird\u00a0wie vorher bei der Root CA beim\u00a0Setup im Ordner %windir% gesucht.<\/p>\n[Version]<\/span>
\n Signature= „$Windows NT$“<\/span><\/p>\n[PolicyStatementExtension]<\/span>
\n Policies = LegalPolicy<\/span>
\n Critical = 0<\/span><\/p>\n[LegalPolicy]<\/span>
\n OID = 1.3.6.1.4.1.311.21.43<\/span>
\n Notice = „Enterprise CA Legal policy statement“<\/span>
\n URL = „http:\/\/pki.spielwiese.local\/CertEnroll\/subLegalPolicy.txt“<\/span><\/p>\n[AuthorityInformationAccess]<\/span>
\n Empty = true\u00a0 ; only Required for Windows Server 2003<\/span>
\n ;URL = http:\/\/%1\/Public\/My CA.crt<\/span>
\n ;URL = file:\/\/\\\\%1\\Public\\My CA.crt<\/span>
\n Critical = true<\/span><\/p>\n[CRLDistributionPoint]<\/span>
\n Empty = true; Only required for Windows Server 2003<\/span>
\n ;URL = http:\/\/%1\/Public\/My CA.crl<\/span>