No results for

Powered byAlgolia

Certificados del cliente SSL/TLS

Normalmente, cuando hablamos de certificados TLS nos referimos al mecanismo por el que los clientes identifican a los servidores. Lo contrario, es decir, que los servidores identifiquen a los clientes, también es soportado tanto por TLS como por k6.

Para utilizar los certificados de cliente se especifican las opciones de configuración global que indican a k6 cómo asignar un certificado público y una clave privada a los dominios para los que son válidos. Puedes cargar el certificado y la clave desde archivos locales o incrustarlos como cadenas en el script.

Cargar un certificado y una clave desde archivos locales

Para cargar un certificado y una clave desde archivos locales se utiliza la función incorporada open():

TLS client certificates from local certificate and key files
1import http from 'k6/http';
2
3export const options = {
4 tlsAuth: [
5 {
6 domains: ['example.com'],
7 cert: open('./mycert.pem'),
8 key: open('./mycert-key.pem'),
9 },
10 ],
11};
12
13export default function () {
14 http.get('https://example.com/');
15}

Cargar el certificado y la clave de las cadenas incrustadas

Para cargar el certificado y la clave a partir de cadenas incrustadas (tenga en cuenta el uso de template literals para los strings de varias líneas):

⚠️ Certificado y clave utilizados en el ejemplo

Los datos parciales del certificado y la clave en el ejemplo anterior fueron generados para este ejemplo en particular, no son reales ni están en uso en ningún lugar.

TLS client certificates from local certificate and key files
1import http from 'k6/http';
2
3const CERT = `-----BEGIN CERTIFICATE-----
4MIIFgTCCA2kCAQEwDQYJKoZIhvcNAQEFBQAwgYExCzAJBgNVBAYTAlNFMRcwFQYD
5VQQIEw5TdG9ja2hvbG1zIExhbjESMBAGA1UEBxMJU3RvY2tob2xtMRcwFQYDVQQK
6...
7/n5QrTGhP51P9Q1THzRfn6cNCDwzSTMVEJr40QhuTJQWASe3miuFmZoG5ykmGqVm
8fWQRiQyM330s9vTwFy14J2Bxe4px6cyy7rVXvYL2LvfA4L0T7/x1nUULw+Mpqun1
9R3XRJWqGDjBKXr5q8VatdQO1QLgr
10-----END CERTIFICATE-----`;
11
12const KEY = `-----BEGIN RSA PRIVATE KEY-----
13KsZVVI1FTX+F959vqu1S02T+R1JM29PkIfJILIXapKQfb0FWrALU5xpipdPYBWp7
14j5iSp06/7H8ms87Uz9BrOA6rytoRSE0/wEe5WkWdBBgLLPpfOSWZsAA5RGCB2n+N
15...
16Dk+frzKuiErHFN7HOHAQannui4eLsY0ehYMByowgJIUGzIJyXR6O19hVhV7Py66u
17X7/Jy01JXn83LuWdpaPAKU+B42BLP0IGXt5CocPms07HOdtJ/wm2zwHTyfjn9vu+
18HO/dQr6a7DhRu2lLI9Sc983NwRqDKICZQQ/+gqWk8BgQZ1yI9O4AYkzywzAEk3py
19-----END RSA PRIVATE KEY-----`;
20
21export const options = {
22 tlsAuth: [
23 {
24 domains: ['example.com'],
25 cert: CERT,
26 key: KEY,
27 },
28 ],
29};
30
31export default function () {
32 http.get('https://example.com/');
33}