菜单
文档面包屑箭头 Grafana k6面包屑箭头 使用 k6面包屑箭头 协议面包屑箭头 SSL/TLS面包屑箭头 SSL/TLS 客户端证书
开放源码

SSL/TLS 客户端证书

关于 TLS 证书的讨论通常是关于客户端如何验证服务器。然而,TLS 和 k6 都支持反向过程,即服务器验证客户端。

要使用客户端证书,请指定全局配置选项,告诉 k6 如何将公共证书和私钥映射到它们适用的域。您可以从本地文件加载证书和密钥,或将其作为字符串嵌入到脚本中。

从本地文件加载证书和密钥

要从本地文件加载证书和密钥,请使用内置函数 open(...)

JavaScript
import http from 'k6/http';

export const options = {
  tlsAuth: [
    {
      domains: ['example.com'],
      cert: open('./mycert.pem'),
      key: open('./mycert-key.pem'),
    },
  ],
};

export default function () {
  http.get('https://example.com/');
}

从嵌入字符串加载证书和密钥

要从嵌入字符串加载证书和密钥,请使用此片段。(注意使用模板字面量表示多行字符串)

注意

这些只是示例密钥。

JavaScript
import http from 'k6/http';

const CERT = `-----BEGIN CERTIFICATE-----
MIIFgTCCA2kCAQEwDQYJKoZIhvcNAQEFBQAwgYExCzAJBgNVBAYTAlNFMRcwFQYD
VQQIEw5TdG9ja2hvbG1zIExhbjESMBAGA1UEBxMJU3RvY2tob2xtMRcwFQYDVQQK
...
/n5QrTGhP51P9Q1THzRfn6cNCDwzSTMVEJr40QhuTJQWASe3miuFmZoG5ykmGqVm
fWQRiQyM330s9vTwFy14J2Bxe4px6cyy7rVXvYL2LvfA4L0T7/x1nUULw+Mpqun1
R3XRJWqGDjBKXr5q8VatdQO1QLgr
-----END CERTIFICATE-----`;

const KEY = `-----BEGIN RSA PRIVATE KEY-----
KsZVVI1FTX+F959vqu1S02T+R1JM29PkIfJILIXapKQfb0FWrALU5xpipdPYBWp7
j5iSp06/7H8ms87Uz9BrOA6rytoRSE0/wEe5WkWdBBgLLPpfOSWZsAA5RGCB2n+N
...
Dk+frzKuiErHFN7HOHAQannui4eLsY0ehYMByowgJIUGzIJyXR6O19hVhV7Py66u
X7/Jy01JXn83LuWdpaPAKU+B42BLP0IGXt5CocPms07HOdtJ/wm2zwHTyfjn9vu+
HO/dQr6a7DhRu2lLI9Sc983NwRqDKICZQQ/+gqWk8BgQZ1yI9O4AYkzywzAEk3py
-----END RSA PRIVATE KEY-----`;

export const options = {
  tlsAuth: [
    {
      domains: ['example.com'],
      cert: CERT,
      key: KEY,
    },
  ],
};

export default function () {
  http.get('https://example.com/');
}