certreq
Der Befehl certreq kann verwendet werden, um Zertifikate von einer Zertifizierungsstelle (CA) anzufordern, eine Antwort auf eine frühere Anforderung von einer Zertifizierungsstelle abzurufen, eine neue Anforderung über eine INF-Datei zu erstellen, eine Antwort auf eine Anforderung zu akzeptieren und zu installieren, eine Anforderung für eine Kreuzzertifizierung oder qualifizierte Unterordnungsanforderung anhand eines vorhandenen Zertifizierungsstellenzertifikats oder einer Anforderung zu konstruieren und eine Anforderung für eine Kreuzzertifizierung oder qualifizierte Unterordnungsanforderung zu signieren.
Wichtig
Frühere Versionen des Befehls certreq bieten möglicherweise nicht alle hier beschriebenen Optionen. Um die Optionen anzuzeigen, die basierend auf bestimmten Versionen von certreq unterstützt werden, führen Sie die Befehlszeilenhilfeoption aus certreq -v -?
.
Der Befehl certreq unterstützt nicht das Erstellen einer neuen Zertifikatsanforderung auf der Grundlage einer Schlüsselnachweisvorlage in einer CEP/CES-Umgebung.
Warnung
Der Inhalt dieses Themas basiert auf den Standardeinstellungen für Windows Server, z.B. indem Sie die Schlüssellänge auf 2048 festlegen, Microsoft Software Key Storage-Anbieter als CSP auswählen und den Secure Hash Algorithm 1 (SHA1) verwenden. Bewerten Sie diese Auswahl anhand der Anforderungen der Sicherheitsrichtlinien Ihres Unternehmens.
Syntax
certreq [-submit] [options] [requestfilein [certfileout [certchainfileout [fullresponsefileOut]]]]
certreq -retrieve [options] requestid [certfileout [certchainfileout [fullresponsefileOut]]]
certreq -new [options] [policyfilein [requestfileout]]
certreq -accept [options] [certchainfilein | fullresponsefilein | certfilein]
certreq -sign [options] [requestfilein [requestfileout]]
certreq –enroll [options] templatename
certreq –enroll –cert certId [options] renew [reusekeys]
Parameter
Parameter | BESCHREIBUNG |
---|---|
-submit | Sendet eine Anforderung an eine Zertifizierungsstelle. |
-retrieve <requestid> |
Ruft eine Antwort auf eine vorherige Anforderung von einer Zertifizierungsstelle ab. |
-new | Erstellt eine neue Anforderung aus einer INF-Datei. |
-accept | Akzeptiert und installiert eine Antwort auf eine Zertifikatanforderung. |
-policy | Gibt die Richtlinie für eine Anfrage an. |
-sign | Signiert eine Kreuzzertifizierungs- oder qualifizierte Unterordnungsanforderung. |
-enroll | Registriert ein Zertifikat oder erneuert es. |
-? | Zeigt eine Liste der Certreq-Syntax, Optionen und Beschreibungen an. |
<parameter> -? |
Zeigt Hilfe für den angegebenen Parameter an. |
-v -? | Zeigt eine ausführliche Liste der Certreq-Syntax, -Optionen und -Beschreibungen an. |
Beispiele
certreq -submit
So übermitteln Sie eine grundlegende Zertifikatanforderung:
certreq –submit certrequest.req certnew.cer certnew.pfx
Hinweise
Dies ist der Standardparameter certreq.exe. Wenn an der Befehlszeileneingabeaufforderung keine Option angegeben ist, versucht certreq.exe, eine Zertifikatanforderung an eine Zertifizierungsstelle zu übermitteln. Sie müssen eine Zertifikatanforderungsdatei angeben, wenn Sie die Option –submit verwenden. Wenn dieser Parameter nicht angegeben wird, wird ein allgemeines Fenster Datei öffnen angezeigt, in dem Sie die entsprechende Zertifikatanforderungsdatei auswählen können.
Um ein Zertifikat durch Angabe des SAN-Attributs anzufordern, lesen Sie den Abschnitt Verwenden des Hilfsprogramms certreq.exe zum Erstellen und Übermitteln einer Zertifikatsanforderung im Microsoft Knowledge Base Artikel 931351 Hinzufügen eines alternativen Antragstellernamens zu einem sicheren LDAP-Zertifikat.
certreq -retrieve
Um die Zertifikats-ID 20 abzurufen und eine Zertifikatsdatei (.cer) mit dem Namen MyCertificate zu erstellen:
certreq -retrieve 20 MyCertificate.cer
Hinweise
Verwenden Sie certreq -retrieve requestid , um das Zertifikat abzurufen, nachdem es von der Zertifizierungsstelle ausgestellt wurde. Die requestid-PKC kann ein Dezimal- oder Hex-Objekt mit dem Präfix 0x und eine Zertifikatseriennummer ohne Präfix 0x sein. Sie können es auch verwenden, um jedes Zertifikat abzurufen, das jemals von der Zertifizierungsstelle ausgestellt wurde, einschließlich widerrufener oder abgelaufener Zertifikate, ohne zu berücksichtigen, ob sich die Anforderung des Zertifikats jemals im ausstehenden Zustand befand.
Wenn Sie eine Anforderung an die Zertifizierungsstelle übermitteln, kann das Richtlinienmodul der Zertifizierungsstelle die Anforderung in einem ausstehenden Zustand belassen und die requestid zur Anzeige an den Certreq-Aufrufer zurückgeben. Schließlich stellt der Administrator der Zertifizierungsstelle das Zertifikat aus oder lehnt die Anforderung ab.
certreq -new
Um eine neue Anforderung zu erstellen:
[newrequest]
; At least one value must be set in this section
subject = CN=W2K8-BO-DC.contoso2.com
Im Folgenden sind einige der möglichen Abschnitte aufgeführt, die der INF-Datei hinzugefügt werden können:
[newrequest]
Dieser Bereich der INF-Datei ist für neue Zertifikatanforderungsvorlagen obligatorisch und muss mindestens einen Parameter mit einem Wert enthalten.
Schlüssel1 | BESCHREIBUNG | Wert2 | Beispiel |
---|---|---|---|
Subject | Mehrere Apps basieren auf den Antragstellerinformationen in einem Zertifikat. Es wird empfohlen, einen Wert für diesen Schlüssel anzugeben. Wenn der Antragsteller hier nicht festgelegt ist, wird empfohlen, einen Antragstellernamen als Teil der Zertifikaterweiterung für den alternativen Antragstellernamen aufzunehmen. | Relative Distinguished Name-Zeichenfolgenwerte | Subject = CN=computer1.contoso.com Subject=CN=John Smith,CN=Users,DC=Contoso,DC=com |
Exportable | Wenn TRUE festgelegt ist, kann der private Schlüssel mit dem Zertifikat exportiert werden. Um ein hohes Maß an Sicherheit zu gewährleisten, sollten private Schlüssel nicht exportiert werden können. In einigen Fällen kann dies jedoch erforderlich sein, wenn mehrere Computer oder Benutzer denselben privaten Schlüssel verwenden müssen. | true | false |
Exportable = TRUE . CNG-Schlüssel können zwischen diesem und dem exportierbaren Klartext unterscheiden. CAPI1-Schlüssel können das nicht. |
ExportableEncrypted | Gibt an, ob der private Schlüssel so festgelegt werden soll, dass er exportierbar ist. | true | false |
ExportableEncrypted = true Tipp: Nicht alle öffentlichen Schlüsselgrößen und Algorithmen funktionieren mit allen Hashalgorithmen. Der angegebene CSP muss auch den angegebenen Hashalgorithmus unterstützen. Um die Liste der unterstützten Hashalgorithmen anzuzeigen, können Sie den Befehl ausführen: |
HashAlgorithm | Hashalgorithmus, der für diese Anforderung verwendet werden soll. | Sha256, sha384, sha512, sha1, md5, md4, md2 |
HashAlgorithm = sha1 . Um die Liste der unterstützten Hashalgorithmen anzuzeigen, verwenden Sie: certutil -oid 1 | findstr pwszCNGAlgid | findstr /v CryptOIDInfo |
KeyAlgorithm | Der Algorithmus, der vom Dienstanbieter verwendet wird, um ein öffentliches und privates Schlüsselpaar zu generieren. | RSA, DH, DSA, ECDH_P256, ECDH_P521, ECDSA_P256, ECDSA_P384, ECDSA_P521 |
KeyAlgorithm = RSA |
KeyContainer | Es wird nicht empfohlen, diesen Parameter für neue Anforderungen festzulegen, bei denen neues Schlüsselmaterial generiert wird. Der Schlüsselcontainer wird automatisch vom System generiert und verwaltet. Bei Anforderungen, bei denen das vorhandene Schlüsselmaterial verwendet werden soll, kann dieser Wert auf den Schlüsselcontainernamen des vorhandenen Schlüssels festgelegt werden. Verwenden Sie den |
Zufälliger Zeichenfolgenwert Tipp: Verwenden Sie doppelte Anführungszeichen um einen beliebigen INF-Schlüsselwert mit Leerzeichen oder Sonderzeichen, um potenzielle INF-Analyseprobleme zu vermeiden. |
KeyContainer = {C347BD28-7F69-4090-AA16-BC58CF4D749C} |
KeyLength | Definiert die Länge des öffentlichen und privaten Schlüssels. Die Schlüssellänge wirkt sich auf die Sicherheitsstufe des Zertifikats aus. Eine größere Schlüssellänge bietet in der Regel eine höhere Sicherheitsstufe. Einige Anwendungen können jedoch Einschränkungen hinsichtlich der Schlüssellänge aufweisen. | Alle gültigen Schlüssellängen, die vom Kryptografiedienstanbieter unterstützt werden. | KeyLength = 2048 |
KeySpec | Bestimmt, ob der Schlüssel für Signaturen, für Exchange (Verschlüsselung) oder für beides verwendet werden kann. | AT_NONE, AT_SIGNATURE, AT_KEYEXCHANGE |
KeySpec = AT_KEYEXCHANGE |
KeyUsage | Definiert, wofür der Zertifikatschlüssel verwendet werden soll. |
|
KeyUsage = CERT_DIGITAL_SIGNATURE_KEY_USAGE | CERT_KEY_ENCIPHERMENT_KEY_USAGE Tipp: Für mehrere Werte wird ein Pipezeichentrennzeichen (|) verwendet. Stellen Sie sicher, dass Sie doppelte Anführungszeichen verwenden, wenn Sie mehrere Werte verwenden, um INF-Analyseprobleme zu vermeiden. Die angezeigten Werte sind hexadezimale (Dezimalwerte) für jede Bitdefinition. Eine ältere Syntax kann auch verwendet werden: ein einzelner Hexadezimalwert mit mehreren Bits anstelle der symbolischen Darstellung. Beispiel: |
KeyUsageProperty | Ruft einen Wert ab, der den spezifischen Zweck angibt, für den ein privater Schlüssel verwendet werden kann. |
|
KeyUsageProperty = NCRYPT_ALLOW_DECRYPT_FLAG | NCRYPT_ALLOW_SIGNING_FLAG |
MachineKeySet | Dieser Schlüssel ist wichtig, wenn Sie Zertifikate erstellen müssen, die dem Computer und nicht einem Benutzer gehören. Das generierte Schlüsselmaterial wird im Sicherheitskontext des Sicherheitsprinzipals (Benutzer- oder Computerkonto) verwaltet, der die Anforderung erstellt hat. Wenn ein Administrator eine Zertifikatsanforderung im Namen eines Computers erstellt, muss das Schlüsselmaterial im Sicherheitskontext des Computers erstellt werden und nicht im Sicherheitskontext des Administrators. Andernfalls konnte der Computer nicht auf seinen privaten Schlüssel zugreifen, da er sich im Sicherheitskontext des Administrators befindet. | true | false . Die Standardeinstellung ist „false“. |
MachineKeySet = true |
NotBefore | Gibt ein Datum oder ein Datum und eine Uhrzeit an, vor denen die Anforderung nicht ausgestellt werden kann. NotBefore kann mit ValidityPeriod und ValidityPeriodUnits verwendet werden. |
Datum oder Datum und Uhrzeit | NotBefore = 7/24/2012 10:31 AM Tipp: |
NotAfter | Gibt ein Datum oder ein Datum und eine Uhrzeit an, nach denen die Anforderung nicht ausgestellt werden kann. NotAfter kann nicht mit ValidityPeriod oder ValidityPeriodUnits verwendet werden. |
Datum oder Datum und Uhrzeit | NotAfter = 9/23/2014 10:31 AM Tipp: |
PrivateKeyArchive | Die Einstellung PrivateKeyArchive funktioniert nur, wenn der entsprechende RequestType auf CMC festgelegt ist, da nur das CMC-Anforderungsformat (Certificate Management Messages over CMS) die sichere Übertragung des privaten Schlüssels des Anforderers an die Zertifizierungsstelle für die Schlüsselarchivierung ermöglicht. | true | false |
PrivateKeyArchive = true |
EncryptionAlgorithm | Der zu verwendende Verschlüsselungsalgorithmus. | Die möglichen Optionen variieren je nach Betriebssystemversion und installierter Kryptografieanbieter. Führen Sie den Befehl aus, um die Liste der verfügbaren Algorithmen anzuzeigen: certutil -oid 2 | findstr pwszCNGAlgid . Der angegebene CSP muss auch den angegebenen symmetrischen Verschlüsselungsalgorithmus und die angegebene Länge unterstützen. |
EncryptionAlgorithm = 3des |
EncryptionLength | Länge des zu verwendenden Verschlüsselungsalgorithmus. | Beliebige Länge, die von der angegebenen EncryptionAlgorithm zulässig ist. | EncryptionLength = 128 |
ProviderName | Der Anbietername ist der Anzeigename des CSP. | Wenn Sie den Anbieternamen des verwendeten CSP nicht kennen, führen Sie certutil –csplist über eine Befehlszeile aus. Der Befehl zeigt die Namen aller CSPs an, die auf dem lokalen System verfügbar sind. |
ProviderName = Microsoft RSA SChannel Cryptographic Provider |
ProviderType | Der Anbietertyp wird verwendet, um bestimmte Anbieter basierend auf bestimmten Algorithmusfunktionen wie RSA Full auszuwählen. | Wenn Sie den Anbietertyp des verwendeten CSP nicht kennen, führen Sie certutil –csplist über eine Befehlszeile aus. Der Befehl zeigt den Anbietertyp aller CSPs an, die auf dem lokalen System verfügbar sind. |
ProviderType = 1 |
RenewalCert | Wenn Sie ein Zertifikat erneuern müssen, das auf dem System vorhanden ist, auf dem die Zertifikatsanforderung generiert wird, müssen Sie dessen Zertifikatshash als Wert für diesen Schlüssel angeben. | Der Zertifikathash eines Zertifikats, das auf dem Computer verfügbar ist, auf dem die Zertifikatanforderung erstellt wird. Wenn Sie den Zertifikathash nicht kennen, verwenden Sie die MMC-Snap-In Zertifikate, und sehen Sie sich das Zertifikat an, das erneuert werden soll. Öffnen Sie die Zertifikateigenschaften, und sehen Sie sich das Thumbprint Attribut des Zertifikats an. Die Zertifikatverlängerung erfordert entweder ein PKCS#7 oder ein CMC Anforderungsformat. |
RenewalCert = 4EDF274BD2919C6E9EC6A522F0F3B153E9B1582D |
RequesterName | Sendet die Anforderung, sich im Auftrag einer anderen Benutzeranforderung zu registrieren. Die Anforderung muss auch mit einem Registrierungs-Agent-Zertifikat signiert werden, sonst lehnt die Zertifizierungsstelle die Anforderung ab. Verwenden Sie die -cert Option, um das Registrierungs-Agent-Zertifikat anzugeben. Der Anforderername kann für Zertifikatanforderungen angegeben werden, wenn der RequestType auf PKCS#7 oder CMC festgelegt ist. Wenn RequestType auf PKCS#10 festgelegt ist, wird dieser Schlüssel ignoriert. Der Requestername kann nur als Teil der Anforderung festgelegt werden. Sie können die Requestername in einer ausstehenden Anforderung nicht bearbeiten. |
Domain\User |
Requestername = Contoso\BSmith |
RequestType | Bestimmt den Standard, der zum Generieren und Senden der Zertifikatanforderung verwendet wird. |
|
RequestType = CMC |
SecurityDescriptor | Enthält die Sicherheitsinformationen, die sicherungsfähigen Objekten zugeordnet sind. Für die meisten sicherungsfähigen Objekte können Sie den Sicherheitsdeskriptor im Funktionsaufruf angeben, der das Objekt erstellt. Zeichenfolgen basierend auf der Sicherheitsdeskriptordefinitionssprache. Tipp: Dies ist nur für Computerkontextschlüssel ohne Smartcard relevant. |
SecurityDescriptor = D:P(A;;GA;;;SY)(A;;GA;;;BA) |
|
AlternateSignatureAlgorithm | Gibt einen booleschen Wert an, der angibt, ob der Signaturalgorithmus-Objektbezeichner (OID) für eine PKCS#10-Anforderung oder eine Zertifikatsignatur diskret oder kombiniert ist. | true | false |
AlternateSignatureAlgorithm = false Gibt für eine RSA-Signatur |
Automatisch | Standardmäßig ermöglicht diese Option dem CSP den Zugriff auf den interaktiven Benutzerdesktop und fordert Informationen wie eine Smartcard-PIN vom Benutzer an. Wenn dieser Schlüssel auf TRUE festgelegt ist, darf der CSP nicht mit dem Desktop interagieren und wird daran gehindert, dem Benutzer eine Benutzeroberfläche anzuzeigen. | true | false |
Silent = true |
SMIME | Wenn dieser Parameter auf TRUE festgelegt ist, wird der Anforderung eine Erweiterung mit dem Objektbezeichnerwert 1.2.840.113549.1.9.15 hinzugefügt. Die Anzahl der Objektbezeichner hängt von der installierten Betriebssystemversion und der CSP-Funktion ab, die sich auf symmetrische Verschlüsselungsalgorithmen beziehen, die von S/MIME-Anwendungen (Secure Multipurpose Internet Mail Extensions) wie Outlook verwendet werden können. | true | false |
SMIME = true |
UseExistingKeySet | Dieser Parameter wird verwendet, um anzugeben, dass ein vorhandenes Schlüsselpaar beim Erstellen einer Zertifikatanforderung verwendet werden soll. Wenn dieser Schlüssel auf TRUE festgelegt ist, müssen Sie auch einen Wert für den RenewalCert-Schlüssel oder den KeyContainer-Namen angeben. Sie dürfen den exportierbaren Schlüssel nicht festlegen, da Sie die Eigenschaften eines vorhandenen Schlüssels nicht ändern können. In diesem Fall wird beim Erstellen der Zertifikatanforderung kein Schlüsselmaterial generiert. | true | false |
UseExistingKeySet = true |
KeyProtection | Gibt einen Wert an, der angibt, wie ein privater Schlüssel vor der Verwendung geschützt wird. |
|
KeyProtection = NCRYPT_UI_FORCE_HIGH_PROTECTION_FLAG |
SuppressDefaults | Gibt einen booleschen Wert an, der anweist, ob die Standarderweiterungen und -attribute in der Anforderung enthalten sind. Die Standardwerte werden durch ihre Objektbezeichner (Object Identifiers, OIDs) dargestellt. | true | false |
SuppressDefaults = true |
FriendlyName | Ein Anzeigename für das neue Zertifikat. | Text | FriendlyName = Server1 |
ValidityPeriodUnits | Gibt viele Einheiten an, die mit ValidityPeriod verwendet werden sollen. Hinweis: Dies wird nur verwendet, wenn der request type=cert . |
Numeric | ValidityPeriodUnits = 3 |
ValidityPeriod | ValidityPeriod muss ein US-englischer Pluralzeitzeitraum sein. Hinweis: Dies wird nur verwendet, wenn die Anforderung type=cert ist. | Years | Months | Weeks | Days | Hours | Minutes | Seconds |
ValidityPeriod = Years |
1 Parameter links neben dem Gleichheitszeichen (=)
1 Parameter rechts neben dem Gleichheitszeichen (=)
[Erweiterungen]
Dieser Abschnitt ist optional.
Erweiterungs-OID | Definition | Beispiel |
---|---|---|
2.5.29.17 | 2.5.29.17 = {text} | |
continue | continue = UPN=User@Domain.com& |
|
continue | continue = EMail=User@Domain.com& |
|
continue | continue = DNS=host.domain.com& |
|
continue | continue = DirectoryName=CN=Name,DC=Domain,DC=com& |
|
continue | continue = URL=<http://host.domain.com/default.html&> |
|
continue | continue = IPAddress=10.0.0.1& |
|
continue | continue = RegisteredId=1.2.3.4.5& |
|
continue | continue = 1.2.3.4.6.1={utf8}String& |
|
continue | continue = 1.2.3.4.6.2={octet}AAECAwQFBgc=& |
|
continue | continue = 1.2.3.4.6.2={octet}{hex}00 01 02 03 04 05 06 07& |
|
continue | continue = 1.2.3.4.6.3={asn}BAgAAQIDBAUGBw==& |
|
continue | continue = 1.2.3.4.6.3={hex}04 08 00 01 02 03 04 05 06 07 |
|
2.5.29.37 | 2.5.29.37={text} |
|
continue | continue = 1.3.6.1.5.5.7 |
|
continue | continue = 1.3.6.1.5.5.7.3.1 |
|
2.5.29.19 | {text}ca=0pathlength=3 |
|
Kritisch | Critical=2.5.29.19 |
|
KeySpec |
|
|
RequestType |
|
|
KeyUsage |
|
|
KeyUsageProperty |
|
|
KeyProtection |
|
|
SubjectNameFlags | Vorlage |
|
X500NameFlags |
|
Hinweis
SubjectNameFlags
ermöglicht es der INF-Datei, anzugeben, welche Subject und SubjectAltName Erweiterungsfelder von certreq basierend auf den aktuellen Benutzer- oder Computereigenschaften automatisch ausgefüllt werden sollen: DNS-Name, UPN usw. Die Verwendung der Literalvorlage bedeutet, dass stattdessen die Vorlagennamenflags verwendet werden. Dadurch kann eine einzige INF-Datei in mehreren Kontexten verwendet werden, um Anfragen mit kontextspezifischen Betreffinformationen zu generieren.
X500NameFlags
gibt die Flags an, die direkt an CertStrToName
die API übergeben werden sollen, wenn der Subject INF keys
Wert in einen ASN.1-codierten Distinguished Name konvertiert wird.
Beispiel
So erstellen Sie eine Richtliniendatei (.inf) in Editor und speichern sie als requestconfig.inf:
[NewRequest]
Subject = CN=<FQDN of computer you are creating the certificate>
Exportable = TRUE
KeyLength = 2048
KeySpec = 1
KeyUsage = 0xf0
MachineKeySet = TRUE
[RequestAttributes]
CertificateTemplate=WebServer
[Extensions]
OID = 1.3.6.1.5.5.7.3.1
OID = 1.3.6.1.5.5.7.3.2
Auf dem Computer, für den Sie ein Zertifikat anfordern:
certreq –new requestconfig.inf certrequest.req
So verwenden Sie die Syntax des Abschnitts [Zeichenfolgen] für OIDs und andere schwer zu interpretierende Daten. Das neue {text}-Syntaxbeispiel für die EKU-Erweiterung, die eine durch Trennzeichen getrennte Liste von OIDs verwendet:
[Version]
Signature=$Windows NT$
[Strings]
szOID_ENHANCED_KEY_USAGE = 2.5.29.37
szOID_PKIX_KP_SERVER_AUTH = 1.3.6.1.5.5.7.3.1
szOID_PKIX_KP_CLIENT_AUTH = 1.3.6.1.5.5.7.3.2
[NewRequest]
Subject = CN=TestSelfSignedCert
Requesttype = Cert
[Extensions]
%szOID_ENHANCED_KEY_USAGE%={text}%szOID_PKIX_KP_SERVER_AUTH%,
_continue_ = %szOID_PKIX_KP_CLIENT_AUTH%
Um einen alternativen Antragstellernamen (Subject Alternate Name, SAN) anzugeben, fügen Sie ihn im Abschnitt [Erweiterungen] Ihrer INF hinzu. Beispiel:
[Version]
Signature=$Windows NT$
[Strings]
szOID_ENHANCED_KEY_USAGE = 2.5.29.37
szOID_PKIX_KP_SERVER_AUTH = 1.3.6.1.5.5.7.3.1
szOID_PKIX_KP_CLIENT_AUTH = 1.3.6.1.5.5.7.3.2
[NewRequest]
Subject = CN=TestSelfSignedCert
Requesttype = Cert
[Extensions]
2.5.29.17 = "{text}"
_continue_ = "DNS=example.com"
_continue_ = "DNS=www.example.com"
_continue_ = "IP Address=192.168.1.1"
In diesem Beispiel ist 2.5.29.17
die OID, die das SAN definiert. Um mehrere SANs anzugeben, wird die Erweiterungs-OID _continue_
verwendet, mit dem Sie jede SAN-Erweiterung trennen und angeben können.
certreq -accept
Der –accept
-Parameter verknüpft den zuvor generierten privaten Schlüssel mit dem ausgestellten Zertifikat und entfernt die ausstehende Zertifikatsanforderung aus dem System, in dem das Zertifikat angefordert wird (wenn eine übereinstimmende Anforderung vorhanden ist).
Um ein Zertifikat manuell zu akzeptieren:
certreq -accept certnew.cer
Warnung
Die Verwendung des -accept
Parameters mit den -user
Optionen und –machine
gibt an, ob das installierende Zertifikat im Benutzer- oder Computerkontext installiert werden soll. Wenn in beiden Kontexten eine ausstehende Anforderung vorhanden ist, die dem installierten öffentlichen Schlüssel entspricht, dann werden diese Optionen nicht erforderlich. Wenn keine ausstehende Anforderung vorhanden ist, muss eine dieser Anforderungen angegeben werden.
certreq -policy
Die Datei policy.inf ist eine Konfigurationsdatei, die die Einschränkungen definiert, die auf eine Zertifizierungsstelle angewendet werden, wenn eine qualifizierte Unterordnung definiert wird.
So erstellen Sie eine zertifikatübergreifende Anforderung:
certreq -policy certsrv.req policy.inf newcertsrv.req
Wenn Sie certreq -policy
ohne zusätzlichen Parameter verwenden, wird ein Dialogfeld geöffnet, in dem Sie die angeforderte Datei (.req, .cmc, .txt, .der, .cer oder .crt) auswählen können. Nachdem Sie die angeforderte Datei ausgewählt und auf Öffnen geklickt haben, wird ein weiteres Dialogfenster geöffnet, in dem Sie die Datei policy.inf auswählen können.
Beispiele
Suchen Sie ein Beispiel für die Datei policy.inf in der Syntax CAPolicy.inf.
certreq -sign
Um eine neue Zertifikatanforderung zu erstellen, signieren Sie sie, und übermitteln Sie sie:
certreq -new policyfile.inf myrequest.req
certreq -sign myrequest.req myrequest.req
certreq -submit myrequest_sign.req myrequest_cert.cer
Hinweise
Wenn Sie
certreq -sign
ohne zusätzlichen Parameter verwenden, wird ein Dialogfeld geöffnet, in dem Sie die angeforderte Datei (.req, .cmc, .txt, .der, .cer oder .crt) auswählen können.Für das Signieren der qualifizierten Unterordnungsanforderung sind möglicherweise Anmeldeinformationen des Unternehmensadministrators erforderlich. Dies ist eine bewährte Methode zum Ausstellen von Signaturzertifikaten für qualifizierte Unterordnungen.
Das Zertifikat, das zum Signieren der qualifizierten Unterordnungsanforderung verwendet wird, verwendet die qualifizierte Unterordnungsvorlage. Unternehmensadministratoren müssen die Anforderung signieren oder den Personen, die das Zertifikat signieren, Benutzerberechtigungen erteilen.
Möglicherweise müssen zusätzliche Mitarbeiter die CMC-Anforderung nach Ihnen signieren lassen. Dies hängt von der Zuverlässigkeitsebene ab, die der qualifizierten Unterordnung zugeordnet ist.
Wenn die übergeordnete Zertifizierungsstelle der qualifizierten untergeordneten Zertifizierungsstelle, die Sie installieren, offline ist, müssen Sie das Zertifizierungsstellenzertifikat für die qualifizierte untergeordnete Zertifizierungsstelle von der übergeordneten Offlinezertifizierungsstelle abrufen. Wenn die übergeordnete Zertifizierungsstelle online ist, geben Sie das Zertifizierungsstellenzertifikat für die qualifizierte untergeordnete Zertifizierungsstelle während des Installations-Assistenten für Zertifikatdienste an.
certreq -enroll
Sie können diesen Kommentar verwenden, um Ihre Zertifikate zu registrieren oder zu erneuern.
Beispiele
So registrieren Sie ein Zertifikat mithilfe der WebServer-Vorlage und wählen den Richtlinienserver mit U/I aus:
certreq -enroll –machine –policyserver * WebServer
So verlängern Sie ein Zertifikat mit einer Seriennummer:
certreq –enroll -machine –cert 61 2d 3c fe 00 00 00 00 00 05 renew
Sie können nur gültige Zertifikate verlängern. Abgelaufene Zertifikate können nicht verlängert werden und müssen durch ein neues Zertifikat ersetzt werden.
Optionen
Optionen | BESCHREIBUNG |
---|---|
-any | Force ICertRequest::Submit , um den Codierungstyp zu bestimmen. |
-attrib <attributestring> |
Gibt die Zeichenfolgenpaare Name und Wert an, getrennt durch einen Doppelpunkt. Trennen Sie Zeichenfolgenpaare mit Name und Wert |
-binary | Formatiert Ausgabedateien als binär statt als Base64-codiert. |
-policyserver <policyserver> |
ldap: <path> Fügen Sie den URI oder die eindeutige ID für einen Computer ein, auf dem der Webdienst „Zertifikatregistrierungsrichtlinie“ ausgeführt wird. Um anzugeben, dass Sie eine Anforderungsdatei beim Durchsuchen verwenden möchten, verwenden Sie einfach ein Minuszeichen (-) für |
-config <ConfigString> |
Verarbeitet den Vorgang mit der in der Konfigurationszeichenfolge (d. h. Name des Zertifizierungsstellencomputers\Name der Zertifizierungsstelle) angegebenen Zertifizierungsstelle. Geben Sie für eine https:\\-Verbindung den Registrierungsserver-URI an. Verwenden Sie für die lokale Computerspeicherzertifizierungsstelle ein Minuszeichen (-). |
-anonymous | Verwenden Sie anonyme Anmeldeinformationen für Zertifikatregistrierungswebdienste. |
-kerberos | Verwenden Sie Kerberos-Anmeldeinformationen (Domänenanmeldeinformationen) für Zertifikatregistrierungswebdienste. |
-clientcertificate <ClientCertId> |
Sie können den <ClientCertId> durch einen Zertifikatfingerabdruck, einen CN, eine EKU, eine Vorlage, eine E-Mail, einen UPN oder die neue name=value Syntax ersetzen. |
-username <username> |
Mit Zertifikatregistrierungswebdienst verwendet. Sie können <username> durch den SAM-Namen oder den Wert domain\user ersetzen. Diese Option kann mit der -p Option verwendet werden. |
-p <password> |
Mit Zertifikatregistrierungswebdienst verwendet. Ersetzen Sie <password> durch das Kennwort des tatsächlichen Benutzers. Diese Option kann mit der -username Option verwendet werden. |
-user | Konfiguriert eine neue Zertifikatsanforderung oder gibt den -user -Kontext für eine Zertifikatsakzeptanz für den Kontext an. Dies ist der Standardkontext, wenn keiner im INF oder der Vorlage angegeben ist. |
-machine | Konfiguriert eine neue Zertifikatsanforderung oder gibt den Kontext für eine Zertifikatsakzeptanz für den Computerkontext an. Bei neuen Anforderungen muss er mit dem MachineKeyset-INF-Schlüssel und dem Vorlagenkontext konsistent sein. Wenn diese Option nicht angegeben ist und die Vorlage keinen Kontext festlegt, ist der Standard der Benutzerkontext. |
-crl | Schließt Zertifikatsperrlisten (Certificate Revocation Lists, CRLs) in die Ausgabe der base64-codierten PKCS #7-Datei ein, die durch certchainfileout oder für die base64-codierte Datei angegeben wird, die durch angegeben wird requestfileout . |
-rpc | Weist Active Directory Certificate Services (AD CS) an, anstelle von Distributed COM eine RPC-Serververbindung (Remote Procedure Call) zu verwenden. |
-adminforcemachine | Verwenden Sie den Schlüsseldienst oder Identitätswechsel, um die Anforderung aus dem Kontext des lokalen Systems zu übermitteln. Erfordert, dass der Benutzer, der diese Option aufruft, Mitglied der lokalen Administratoren ist. |
-renewonbehalfof | Übermitteln Sie eine Verlängerung im Namen des Antragstellers, der im Signaturzertifikat angegeben ist. Dadurch wird CR_IN_ROBO beim Aufrufen der ICertRequest::Submit method festgelegt. |
-f | Erzwingen, dass vorhandene Dateien überschrieben werden. Dadurch wird auch das Zwischenspeichern von Vorlagen und Richtlinien umgangen. |
-q | Verwenden des unbeaufsichtigten Modus; unterdrücken Sie alle interaktiven Eingabeaufforderungen. |
-unicode | Schreibt die Unicode-Ausgabe, wenn die Standardausgabe umgeleitet oder an einen anderen Befehl weitergeleitet wird. Dies hilft beim Aufrufen von Windows PowerShell Skripts. |
-unicodetext | Sendet Unicode-Ausgabe beim Schreiben von Base64-Textcodierten Datenblobs in Dateien. |
Formate
Formate | BESCHREIBUNG |
---|---|
requestfilein | Base64-codierter oder binärer Eingabedateiname: PKCS #10-Zertifikatsanforderung, CMS-Zertifikatsanforderung, PKCS #7-Zertifikatsverlängerungsanforderung, X.509-Zertifikat, um kreuzzertifiziert zu sein, oder Zertifikatsanforderung im KeyGen-Tagformat. |
requestfileout | Base64-codierter Ausgabedateiname. |
certfileout | Base64-codierter X-509-Dateiname. |
PKCS10fileout | Nur für die Verwendung mit dem certreq -policy Parameter. Base64-codierter PKCS10-Ausgabedateiname. |
certchainfileout | Base64-codierter PKCS #7-Dateiname. |
fullresponsefileout | Base64-codierter Name der vollständigen Antwortdatei. |
policyfilein | Nur für die Verwendung mit dem certreq -policy Parameter. INF-Datei, die eine Textdarstellung von Erweiterungen enthält, die zum Qualifizieren einer Anforderung verwendet wird. |
Zusätzliche Ressourcen
Die folgenden Artikel enthalten Beispiele für die Verwendung von certreq: