refresh date: 2026-09-25 robots: noindex
Deskripsi
Gunakan API chrome.platformKeys untuk mengakses sertifikat klien yang dikelola oleh platform. Jika pengguna atau kebijakan memberikan izin, ekstensi dapat menggunakan sertifikat tersebut dalam protokol autentikasi kustomnya. Misalnya, setelan ini memungkinkan penggunaan sertifikat yang dikelola platform di VPN pihak ketiga (lihat chrome.vpnProvider).
Izin
platformKeysKetersediaan
Jenis
ClientCertificateRequest
Properti
-
certificateAuthorities
ArrayBuffer[]
Daftar nama yang dibedakan dari certificate authority yang diizinkan oleh server. Setiap entri harus berupa DistinguishedName X.509 yang dienkode DER.
-
certificateTypes
Kolom ini adalah daftar jenis sertifikat yang diminta, yang diurutkan berdasarkan preferensi server. Hanya sertifikat dengan jenis yang ada dalam daftar ini yang akan diambil. Namun, jika
certificateTypesadalah daftar kosong, sertifikat jenis apa pun akan ditampilkan.
ClientCertificateType
Enum
"rsaSign"
"ecdsaSign"
Match
Properti
-
sertifikat
ArrayBuffer
Encoding DER dari sertifikat X.509.
-
keyAlgorithm
objek
KeyAlgorithm dari kunci yang disertifikasi. Bagian ini berisi parameter algoritma yang melekat pada kunci sertifikat (misalnya, panjang kunci). Parameter lain seperti fungsi hash yang digunakan oleh fungsi tanda tidak disertakan.
SelectDetails
Properti
-
clientCerts
ArrayBuffer[] opsional
Jika diberikan,
selectClientCertificatesakan beroperasi pada daftar ini. Jika tidak, dapatkan daftar semua sertifikat dari penyimpanan sertifikat platform yang tersedia untuk ekstensi ini. Entri yang tidak memiliki izin untuk ekstensi atau yang tidak cocok dengan permintaan akan dihapus. -
interaktif
boolean
Jika benar (true), daftar yang difilter akan ditampilkan kepada pengguna untuk memilih sertifikat secara manual, sehingga memberikan akses ekstensi ke sertifikat dan kunci. Hanya sertifikat yang dipilih yang akan ditampilkan. Jika salah, daftar akan dikurangi menjadi semua sertifikat yang aksesnya telah diberikan ke ekstensi (secara otomatis atau manual).
-
minta
Hanya sertifikat yang cocok dengan permintaan ini yang akan ditampilkan.
VerificationDetails
Properti
-
hostname
string
Nama host server yang akan diverifikasi sertifikatnya, misalnya server yang menampilkan
serverCertificateChain. -
serverCertificateChain
ArrayBuffer[]
Setiap entri rantai harus berupa encoding DER dari sertifikat X.509, entri pertama harus berupa sertifikat server, dan setiap entri harus menyertifikasi entri sebelumnya.
VerificationResult
Properti
-
debug_errors
string[]
Jika verifikasi kepercayaan gagal, array ini berisi error yang dilaporkan oleh lapisan jaringan yang mendasarinya. Jika tidak, array ini akan kosong.
Catatan: Daftar ini hanya dimaksudkan untuk proses debug dan mungkin tidak berisi semua error yang relevan. Error yang ditampilkan dapat berubah dalam revisi API ini di masa mendatang, dan tidak dijamin kompatibel dengan versi lama atau yang lebih baru.
-
tepercaya
boolean
Hasil verifikasi kepercayaan: benar jika kepercayaan untuk detail verifikasi yang diberikan dapat ditetapkan dan salah jika kepercayaan ditolak karena alasan apa pun.
Metode
getKeyPair()
chrome.platformKeys.getKeyPair(
certificate: ArrayBuffer,
parameters: object,
callback: function,
): void
Meneruskan pasangan kunci certificate untuk digunakan dengan platformKeys.subtleCrypto ke callback.
Parameter
-
sertifikat
ArrayBuffer
Sertifikat
Matchyang ditampilkan olehselectClientCertificates. -
parameter
objek
Menentukan parameter algoritma tanda tangan/hash selain parameter yang ditetapkan oleh kunci itu sendiri. Parameter yang sama diterima seperti fungsi importKey WebCrypto, misalnya,
RsaHashedImportParamsuntuk kunci RSASSA-PKCS1-v1_5 danEcKeyImportParamsuntuk kunci EC. Selain itu, untuk kunci RSASSA-PKCS1-v1_5, parameter nama algoritma hashing dapat ditentukan dengan salah satu nilai berikut: "none", "SHA-1", "SHA-256", "SHA-384", atau "SHA-512", misalnya{"hash": { "name": "none" } }. Fungsi sign kemudian akan menerapkan padding PKCS#1 v1.5, tetapi tidak akan melakukan hashing pada data yang diberikan.Saat ini, metode ini hanya mendukung algoritma "RSASSA-PKCS1-v1_5" dan "ECDSA".
-
callback
fungsi
Parameter
callbackterlihat seperti:(publicKey: object, privateKey?: object) => void
-
publicKey
objek
-
privateKey
objek opsional
Mungkin
nulljika ekstensi ini tidak memiliki akses ke sana.
-
getKeyPairBySpki()
chrome.platformKeys.getKeyPairBySpki(
publicKeySpkiDer: ArrayBuffer,
parameters: object,
callback: function,
): void
Meneruskan pasangan kunci yang diidentifikasi oleh publicKeySpkiDer untuk digunakan dengan platformKeys.subtleCrypto ke callback.
Parameter
-
publicKeySpkiDer
ArrayBuffer
SubjectPublicKeyInfo X.509 yang dienkode DER, diperoleh misalnya dengan memanggil fungsi exportKey WebCrypto dengan format="spki".
-
parameter
objek
Menyediakan parameter algoritma tanda tangan dan hash, selain parameter yang ditetapkan oleh kunci itu sendiri. Parameter yang sama diterima seperti oleh fungsi importKey WebCrypto, misalnya
RsaHashedImportParamsuntuk kunci RSASSA-PKCS1-v1_5. Untuk kunci RSASSA-PKCS1-v1_5, kita juga perlu meneruskan parameter "hash"{ "hash": { "name": string } }. Parameter "hash" mewakili nama algoritma hashing yang akan digunakan dalam operasi digest sebelum tanda tangan. Anda dapat meneruskan "none" sebagai nama hash, yang dalam hal ini fungsi sign akan menerapkan padding PKCS#1 v1.5, tetapi tidak melakukan hashing pada data yang diberikan.Saat ini, metode ini mendukung algoritma "ECDSA" dengan kurva bernama P-256 dan algoritma "RSASSA-PKCS1-v1_5" dengan salah satu algoritma hashing "none", "SHA-1", "SHA-256", "SHA-384", dan "SHA-512".
-
callback
fungsi
Parameter
callbackterlihat seperti:(publicKey: object, privateKey?: object) => void
-
publicKey
objek
-
privateKey
objek opsional
Mungkin
nulljika ekstensi ini tidak memiliki akses ke sana.
-
selectClientCertificates()
chrome.platformKeys.selectClientCertificates(
details: SelectDetails,
callback?: function,
): Promise<Match[]>
Metode ini memfilter dari daftar sertifikat klien yang diketahui oleh platform, cocok dengan request, dan yang ekstensinya memiliki izin untuk mengakses sertifikat dan kunci pribadinya. Jika interactive benar (true), pengguna akan melihat dialog tempat mereka dapat memilih dari sertifikat yang cocok dan memberikan akses ekstensi ke sertifikat. Sertifikat klien yang dipilih/difilter akan diteruskan ke callback.
Parameter
Hasil
-
Promise<Match[]>
Chrome 121+Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain harus menggunakan callback.
subtleCrypto()
chrome.platformKeys.subtleCrypto(): object | undefined
Implementasi SubtleCrypto WebCrypto yang memungkinkan operasi kripto pada kunci sertifikat klien yang tersedia untuk ekstensi ini.
Hasil
-
object | undefined
verifyTLSServerCertificate()
chrome.platformKeys.verifyTLSServerCertificate(
details: VerificationDetails,
callback?: function,
): Promise<VerificationResult>
Memeriksa apakah details.serverCertificateChain dapat dipercaya untuk details.hostname sesuai dengan setelan kepercayaan platform. Catatan: Perilaku sebenarnya dari verifikasi kepercayaan tidak sepenuhnya ditentukan dan dapat berubah di masa mendatang. Implementasi API memverifikasi masa berlaku sertifikat, memvalidasi jalur sertifikasi, dan memeriksa kepercayaan oleh CA yang dikenal. Implementasi ini seharusnya mematuhi serverAuth EKU dan mendukung nama alternatif subjek.
Parameter
-
detail
-
callback
fungsi opsional
Parameter
callbackterlihat seperti:(result: VerificationResult) => void
-
hasil
-
Hasil
-
Promise<VerificationResult>
Chrome 121+Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain harus menggunakan callback.