Redhat Linux环境下为k6客户端配置自签名证书SSL的方法指导
在RedHat Linux上为k6配置自签名SSL证书的步骤
一、生成自签名证书(若未生成)
如果还没有可用的自签名证书,通过OpenSSL在RedHat环境生成:
- 生成2048位私钥:
openssl genrsa -out mycert-key.pem 2048 - 创建证书签名请求(CSR):
openssl req -new -key mycert-key.pem -out mycert.csr- 填写信息时,Common Name必须与目标测试域名(如
example.com)完全一致
- 填写信息时,Common Name必须与目标测试域名(如
- 生成有效期1年的自签名证书:
openssl x509 -req -days 365 -in mycert.csr -signkey mycert-key.pem -out mycert.pem
二、k6脚本的正确配置
修正你的tlsAuth配置,注意以下细节:
- 文件路径:如果证书与脚本不在同一目录,使用绝对路径(如
/home/your-user/certs/mycert.pem)避免路径错误 - 域名匹配:
domains数组中的值必须与证书的Common Name或SAN字段完全匹配 - 完整示例脚本:
import http from 'k6/http'; import { sleep } from 'k6'; export const options = { tlsAuth: [ { domains: ['example.com'], cert: open('./mycert.pem'), key: open('./mycert-key.pem'), } ] }; export default function () { http.get('https://example.com'); sleep(1); }
三、系统层面信任证书(解决证书不信任错误)
若k6请求时返回证书不信任相关错误,需将自签名证书添加到RedHat系统信任库:
- 复制证书到系统锚点目录:
sudo cp mycert.pem /etc/pki/ca-trust/source/anchors/ - 更新系统信任存储:
sudo update-ca-trust extract
四、常见问题排查
- 验证证书与私钥匹配:执行
openssl x509 -noout -modulus -in mycert.pem | openssl md5和openssl rsa -noout -modulus -in mycert-key.pem | openssl md5,两者输出需完全一致 - 查看详细日志:运行脚本时添加
-v参数(k6 run -v your-script.js),根据日志定位文件缺失、格式错误等问题 - 检查证书格式:确保证书为PEM格式,若为DER格式需转换:
openssl x509 -inform der -in cert.cer -out mycert.pem
内容的提问来源于stack exchange,提问作者msumit
相关产品推荐
相关产品推荐

