refresh date: 2026-09-25 robots: noindex
Beschreibung
Verwenden Sie die chrome.platformKeys API, um auf von der Plattform verwaltete Clientzertifikate zuzugreifen. Wenn der Nutzer oder die Richtlinie die Berechtigung erteilt, kann eine Erweiterung ein solches Zertifikat in ihrem benutzerdefinierten Authentifizierungsprotokoll verwenden. So können beispielsweise von der Plattform verwaltete Zertifikate in Drittanbieter-VPNs verwendet werden (siehe chrome.vpnProvider).
Berechtigungen
platformKeysVerfügbarkeit
Typen
ClientCertificateRequest
Attribute
-
certificateAuthorities
ArrayBuffer[]
Liste der Distinguished Names von Zertifizierungsstellen, die vom Server zugelassen werden. Jeder Eintrag muss ein DER-codierter X.509-DistinguishedName sein.
-
certificateTypes
Dieses Feld enthält eine Liste der angeforderten Zertifikatstypen, sortiert nach der Präferenz des Servers. Es werden nur Zertifikate eines Typs abgerufen, der in dieser Liste enthalten ist. Wenn
certificateTypesdie leere Liste ist, werden jedoch Zertifikate aller Typen zurückgegeben.
ClientCertificateType
Enum
"rsaSign"
"ecdsaSign"
Match
Attribute
-
Zertifikat
ArrayBuffer
Die DER-Codierung eines X.509-Zertifikats.
-
keyAlgorithm
Objekt
Der KeyAlgorithm des zertifizierten Schlüssels. Diese enthält Algorithmusparameter, die dem Schlüssel des Zertifikats inhärent sind (z.B. die Schlüssellänge). Andere Parameter wie die von der Signierfunktion verwendete Hash-Funktion sind nicht enthalten.
SelectDetails
Attribute
-
clientCerts
ArrayBuffer[] optional
Wenn angegeben, wird die
selectClientCertificatesauf diese Liste angewendet. Andernfalls wird die Liste aller Zertifikate aus den Zertifikatsspeichern der Plattform abgerufen, die für diese Erweiterungen verfügbar sind. Einträge, für die die Erweiterung keine Berechtigung hat oder die nicht mit der Anfrage übereinstimmen, werden entfernt. -
interaktiv
boolean
Wenn „true“ festgelegt ist, wird dem Nutzer die gefilterte Liste angezeigt, damit er manuell ein Zertifikat auswählen kann. Dadurch erhält die Erweiterung Zugriff auf die Zertifikate und Schlüssel. Es werden nur die ausgewählten Zertifikate zurückgegeben. Wenn der Wert „false“ ist, wird die Liste auf alle Zertifikate reduziert, auf die die Erweiterung (automatisch oder manuell) Zugriff erhalten hat.
-
Anfrage
Es werden nur Zertifikate zurückgegeben, die mit dieser Anfrage übereinstimmen.
VerificationDetails
Attribute
-
Hostname
String
Der Hostname des Servers, für den das Zertifikat überprüft werden soll, z.B. der Server, der das
serverCertificateChainpräsentiert hat. -
serverCertificateChain
ArrayBuffer[]
Jeder Ketteneintrag muss die DER-Codierung eines X.509-Zertifikats sein, der erste Eintrag muss das Serverzertifikat sein und jeder Eintrag muss den vorherigen Eintrag zertifizieren.
VerificationResult
Attribute
-
debug_errors
String[]
Wenn die Vertrauensprüfung fehlgeschlagen ist, enthält dieses Array die von der zugrunde liegenden Netzwerkschicht gemeldeten Fehler. Andernfalls ist dieses Array leer.
Hinweis: Diese Liste ist nur für die Fehlerbehebung gedacht und enthält möglicherweise nicht alle relevanten Fehler. Die zurückgegebenen Fehler können sich in zukünftigen Versionen dieser API ändern und sind nicht garantiert vorwärts- oder abwärtskompatibel.
-
vertrauenswürdig
boolean
Das Ergebnis der Vertrauensprüfung: „true“, wenn die Vertrauenswürdigkeit für die angegebenen Prüfungsdetails festgestellt werden konnte, und „false“, wenn die Vertrauenswürdigkeit aus irgendeinem Grund abgelehnt wurde.
Methoden
getKeyPair()
chrome.platformKeys.getKeyPair(
certificate: ArrayBuffer,
parameters: object,
callback: function,
): void
Übergibt das Schlüsselpaar von certificate zur Verwendung mit platformKeys.subtleCrypto an callback.
Parameter
-
Zertifikat
ArrayBuffer
Das Zertifikat eines
Match, das vonselectClientCertificateszurückgegeben wird. -
Parameter
Objekt
Bestimmt zusätzlich zu den durch den Schlüssel selbst festgelegten Parametern die Parameter des Signatur-/Hash-Algorithmus. Es werden dieselben Parameter wie von der WebCrypto-Funktion importKey akzeptiert, z.B.
RsaHashedImportParamsfür einen RSASSA-PKCS1-v1_5-Schlüssel undEcKeyImportParamsfür einen EC-Schlüssel. Zusätzlich kann für RSASSA-PKCS1-v1_5-Schlüssel der Parameter für den Namen des Hash-Algorithmus mit einem der folgenden Werte angegeben werden: „none“, „SHA-1“, „SHA-256“, „SHA-384“ oder „SHA-512“, z.B.{"hash": { "name": "none" } }. Die Signierfunktion wendet dann das PKCS#1 v1.5-Padding an, hasht die angegebenen Daten jedoch nicht.Derzeit werden von dieser Methode nur die Algorithmen „RSASSA-PKCS1-v1_5“ und „ECDSA“ unterstützt.
-
callback
Funktion
Der Parameter
callbacksieht so aus:(publicKey: object, privateKey?: object) => void
-
publicKey
Objekt
-
privateKey
Objekt optional
Kann
nullsein, wenn diese Erweiterung keinen Zugriff darauf hat.
-
getKeyPairBySpki()
chrome.platformKeys.getKeyPairBySpki(
publicKeySpkiDer: ArrayBuffer,
parameters: object,
callback: function,
): void
Übergibt das durch publicKeySpkiDer identifizierte Schlüsselpaar zur Verwendung mit platformKeys.subtleCrypto an callback.
Parameter
-
publicKeySpkiDer
ArrayBuffer
Eine DER-codierte X.509-SubjectPublicKeyInfo, die z.B. durch Aufrufen der WebCrypto-Funktion „exportKey“ mit format="spki" abgerufen wird.
-
Parameter
Objekt
Stellt zusätzlich zu den durch den Schlüssel selbst festgelegten Parametern Signatur- und Hash-Algorithmusparameter bereit. Es werden dieselben Parameter wie von der importKey-Funktion von WebCrypto akzeptiert, z.B.
RsaHashedImportParamsfür einen RSASSA-PKCS1-v1_5-Schlüssel. Für RSASSA-PKCS1-v1_5-Schlüssel müssen wir auch den Parameter „hash“{ "hash": { "name": string } }übergeben. Der Parameter „hash“ stellt den Namen des Hash-Algorithmus dar, der vor einer Signatur im Digest-Vorgang verwendet werden soll. Es ist möglich, „none“ als Hash-Namen zu übergeben. In diesem Fall wendet die Signierfunktion das PKCS#1 v1.5-Padding an, hasht die angegebenen Daten jedoch nicht.Derzeit unterstützt diese Methode den Algorithmus „ECDSA“ mit der benannten Kurve P-256 und den Algorithmus „RSASSA-PKCS1-v1_5“ mit einem der Hash-Algorithmen „none“, „SHA-1“, „SHA-256“, „SHA-384“ und „SHA-512“.
-
callback
Funktion
Der Parameter
callbacksieht so aus:(publicKey: object, privateKey?: object) => void
-
publicKey
Objekt
-
privateKey
Objekt optional
Kann
nullsein, wenn diese Erweiterung keinen Zugriff darauf hat.
-
selectClientCertificates()
chrome.platformKeys.selectClientCertificates(
details: SelectDetails,
callback?: function,
): Promise<Match[]>
Mit dieser Methode wird eine Liste von Clientzertifikaten gefiltert, die der Plattform bekannt sind, mit request übereinstimmen und für die die Erweiterung die Berechtigung hat, auf das Zertifikat und seinen privaten Schlüssel zuzugreifen. Wenn interactive auf „true“ gesetzt ist, wird dem Nutzer ein Dialogfeld angezeigt, in dem er aus übereinstimmenden Zertifikaten auswählen und der Erweiterung Zugriff auf das Zertifikat gewähren kann. Die ausgewählten/gefilterten Clientzertifikate werden an callback übergeben.
Parameter
-
Details
-
callback
function optional
Der Parameter
callbacksieht so aus:(matches: Match[]) => void
-
stimmt überein mit
Die Liste der Zertifikate, die der Anfrage entsprechen, für die die Erweiterung die Berechtigung hat und die vom Nutzer ausgewählt wurden, wenn
interactive„true“ ist.
-
Ausgabe
-
Promise<Match[]>
Chrome 121 und höherPromises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
subtleCrypto()
chrome.platformKeys.subtleCrypto(): object | undefined
Eine Implementierung von SubtleCrypto von WebCrypto, die kryptografische Vorgänge für Schlüssel von Clientzertifikaten ermöglicht, die für diese Erweiterung verfügbar sind.
Ausgabe
-
object | undefined
verifyTLSServerCertificate()
chrome.platformKeys.verifyTLSServerCertificate(
details: VerificationDetails,
callback?: function,
): Promise<VerificationResult>
Prüft, ob details.serverCertificateChain gemäß den Vertrauenseinstellungen der Plattform für details.hostname vertrauenswürdig ist. Hinweis: Das tatsächliche Verhalten der Vertrauensprüfung ist nicht vollständig spezifiziert und kann sich in Zukunft ändern. Die API-Implementierung überprüft den Ablauf des Zertifikats, validiert den Zertifizierungspfad und prüft die Vertrauenswürdigkeit durch eine bekannte Zertifizierungsstelle. Die Implementierung muss die EKU „serverAuth“ berücksichtigen und alternative Antragstellernamen unterstützen.
Parameter
-
Details
-
callback
function optional
Der Parameter
callbacksieht so aus:(result: VerificationResult) => void
-
Ergebnis
-
Ausgabe
-
Promise<VerificationResult>
Chrome 121 und höherPromises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.