- 10+ лет тестирования
- карьерные консультации для тестировщиков
- Plesk > Yandex > Plesk
- берем ноутбук
- отключаем от сети
- выполняем нагрузку в цикле
- ждем разряда батареи
- записываем время
- Яндекс.Браузер
- Chrome
- берем ноутбук
- отключаем от сети
- выполняем нагрузку
- ждём разряда батареи <--- 6 часов
- записываем время
{
"vk.com": {
"/search": "..."
},
"google.com": {
"/search?q=qwe": "..."
}
}
--host-resolver-rules="MAP *:80 127.0.0.1:8080,MAP *:443 127.0.0.1:8081,EXCLUDE localhost"
--ignore-certificate-errors-spki-list=<base64 subject>
- не нужно больше ходить в сеть
- одинаковые условия для всех браузеров
- Яндекс.Браузер
- Chrome
- Opera
- Firefox
- сделать решение коробочным
и все это за неделю
--ignore-certificate-errors-spki-list
Браузер | Поддержка |
Chrome |
![]() |
Я.Браузер |
![]() |
Opera |
![]() |
Firefox |
![]() |
- установим сертификат в хранилище Firefox'a
SSL_ERROR_BAD_CERT_DOMAIN
- генерируем сертификаты и ключи на лету
x509.Certificate {
NotBefore: time.Now(),
NotAfter: time.Now().Add(365 * 24 * time.Hour),
SerialNumber: 1,
Issuer: caCrt.Subject,
Subject: csr.Subject,
DNSNames: csr.DNSNames,
KeyUsage: x509.KeyUsageDigitalSignature,
ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageAny},
}
- генерируем сертификаты и ключи на лету
http.Server{
Addr: ":443",
TLSConfig: tlsconfig,
}
- генерируем сертификаты и ключи на лету
http.Server{
Addr: ":443",
TLSConfig: tls.Config {
...
GetConfigForClient: func(*ClientHelloInfo) (*Config, error)
...
},
}
- генерируем сертификаты и ключи на лету
tls.Config{
Certificates: []tls.Certificate{
tls.Certificate{
Certificate: [][]byte{certBytes},
PrivateKey: privateKey,
}
},
}
x509.Certificate{
...
// Key Usage: Any Purpose
ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageAny},
...
}
x509.Certificate{
...
// Key Usage: SSL/TLS Web Server Authentication
ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth},
...
}
x509.Certificate{
...
SerialNumber: 1,
...
}
- пре-генерируем все сертификаты/ключи заранее в виде файлов
- храним SerialNumber персистентно
- кэшируем, чтобы не ходить на диск
- один сертификат/ключ с одним SerialNumber
- все доменные имена добавим в Subject Alt Names
- Chromium - кастомизируем
- Firefox - параноик
- Go - неожиданно прост:
-- проще чем решать проблемы браузеров
-- просто встроиться в существующий код