Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add securityDetails.subjectAlternativeNames() #5628

Closed
wants to merge 5 commits into from
Closed
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 4 additions & 0 deletions docs/api.md
Expand Up @@ -310,6 +310,7 @@
- [class: SecurityDetails](#class-securitydetails)
* [securityDetails.issuer()](#securitydetailsissuer)
* [securityDetails.protocol()](#securitydetailsprotocol)
* [securityDetails.subjectAlternativeNames()](#securitydetailssubjectalternativenames)
* [securityDetails.subjectName()](#securitydetailssubjectname)
* [securityDetails.validFrom()](#securitydetailsvalidfrom)
* [securityDetails.validTo()](#securitydetailsvalidto)
Expand Down Expand Up @@ -3727,6 +3728,9 @@ Contains the URL of the response.
#### securityDetails.protocol()
- returns: <[string]> String with the security protocol, eg. "TLS 1.2".

#### securityDetails.subjectAlternativeNames()
- returns: <[Array]<[string]>> Returns the list of SANs (subject alternative names) of the certificate.

#### securityDetails.subjectName()
- returns: <[string]> Name of the subject to which the certificate was issued to.

Expand Down
8 changes: 8 additions & 0 deletions src/NetworkManager.js
Expand Up @@ -673,6 +673,7 @@ class SecurityDetails {
this._validFrom = securityPayload['validFrom'];
this._validTo = securityPayload['validTo'];
this._protocol = securityPayload['protocol'];
this._sanList = securityPayload['sanList'];
}

/**
Expand Down Expand Up @@ -709,6 +710,13 @@ class SecurityDetails {
protocol() {
return this._protocol;
}

/**
* @return {!Array<string>}
*/
subjectAlternativeNames() {
return this._sanList;
}
}

/**
Expand Down
5 changes: 3 additions & 2 deletions test/ignorehttpserrors.spec.js
Expand Up @@ -61,8 +61,9 @@ describeFailsFirefox('ignoreHTTPSErrors', function() {
const protocol = serverRequest.socket.getProtocol().replace('v', ' ');
expect(securityDetails.protocol()).toBe(protocol);
expect(securityDetails.subjectName()).toBe('puppeteer-tests');
expect(securityDetails.validFrom()).toBe(1550084863);
expect(securityDetails.validTo()).toBe(33086084863);
expect(securityDetails.validFrom()).toBe(1589283259);
expect(securityDetails.validTo()).toBe(1904643259);
expect(securityDetails.subjectAlternativeNames()).toEqual(['www.puppeteer-tests.tld', 'www.puppeteer-tests-1.tld']);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let’s use .test as the TLD per https://tools.ietf.org/html/rfc2606#section-2.

});
it('should be |null| for non-secure requests', async() => {
const { server } = getTestState();
Expand Down
44 changes: 18 additions & 26 deletions utils/testserver/cert.pem
@@ -1,28 +1,20 @@
-----BEGIN CERTIFICATE-----
MIIEsjCCApoCCQCIPLvQDgoZojANBgkqhkiG9w0BAQsFADAaMRgwFgYDVQQDDA9w
dXBwZXRlZXItdGVzdHMwIBcNMTkwMjEzMTkwNzQzWhgPMzAxODA2MTYxOTA3NDNa
MBoxGDAWBgNVBAMMD3B1cHBldGVlci10ZXN0czCCAiIwDQYJKoZIhvcNAQEBBQAD
ggIPADCCAgoCggIBAJue1yqA4qn0SJR3rgTd6sCYVHMKqUouD0No09H7qf+5ZaIb
3yGpC5J9Bsf/ZbvD5xpgqbGEYkHj7Qh6Z/cPCSHA+ZpsUzDXVrLFXrdwwiK1FrIS
rDI2RYsiP+e52XPC/acWC/7f+E54C62oMjYojaVaDn8gu06gyS1rXK2JITQ6CrKn
b+PVSkjtPB4ku245u1qCKoblkNEZSkEmw8Csl+gw6ydGqOSQAoo8rsDte5zCMnPX
7XzL6EhRqpiVx7PCuQWnXhL7j9N214Pit7s7F8TeAA6yZR9oswW+h0dWO+XwocJ1
rwkODXOngbCqO+GUxyuavIl2m0d2MP8n6Wa9RVqYetmPQzafKkR5hjiV4mgCFqNQ
bHMTjI6udcR+h5pYoWKxN9/gJaWwyAAzck0AiMeGVrvKR3JKACqlTMzy/Y30obRF
dddURoFf2wjKJvuTK9hHI7pwM5tlPEwu9bTCWNA6XXs2Bq1f6N2OAKhpKOcihNem
aeGUPmygLPb66z9JO75yZXM+1yk1ScXaNHWZLmluVpEPk7maWULpSpxPAlaN3PmK
8lEihgfBBovampxZo8SvPEt+g5jGyPq9weNg8ic8476PuRVQdg7D8spVxl6whDlJ
bcFojzgrX70t13jqZOtla4WK1vRnZAGplfoH0i5WvAVw+i5S/OVzsmNDtGFbAgMB
AAEwDQYJKoZIhvcNAQELBQADggIBADUAjA/dH+b5UxDC5SL98w1hphw9PvD1cuGS
sVnKPM236JoTiO3KVfm3NMBfSoBi1hPNkXzqr/R4xbyje4Kc4oYcdjGtpll3T5da
wkx1+qumx6O2mEaOshxh76dfZfZne6SQphQKHw8PD10CfDb/NMnmdEbiOSENSqS4
jGELuGviUl361oCBU45UEN7lfs7ANAhwSZyEO7deroyGdvsxfQUaqQrEQsG30jn3
t0cCamYU6eK3bNR/yNXJrZFv3dzoquRY9H52YtVElRqdAIsNlnbxbqz0cm5xFKFt
YTIrMSO1EvDTbB0PPwC5FJvONHhjwiWzgVXSnZrcs/05TsWWnSHH92S+wGCIBC+0
6fcSKnjdBn9ks5TrDX0TRY6N890KyDQWxPRhHYrMVpn833WY8y/SguxqiMgLFgMD
WLy6yZzJloW7NgpLGAfMA0nMG1O92hfKmQw82Pyf3SVXGTDiXiEOXn0vN6bsPaV/
3Ws2LJQECnVfHj3TsuxdtwcO+VGcFCarMOqlhE6IlQzfK8ykYdP6wCkVgXEtiVCR
T1OWUWCFowoFpwBFLf1lA065qsAymddnkrUEOMiScZ/3OZhmd+FvgQ+O0iYuqpeI
xauiQ68+Jb4KjVWnu5QBVq8n1vUJ5+gAzowNMN9G+1+A282Ox23T48dce22BTS6B
3Taaccm+
MIIDVjCCAj6gAwIBAgIUeorgFIerqNqrz1SohENghC6UkcUwDQYJKoZIhvcNAQEL
BQAwGjEYMBYGA1UEAwwPcHVwcGV0ZWVyLXRlc3RzMB4XDTIwMDUxMjExMzQxOVoX
DTMwMDUxMDExMzQxOVowGjEYMBYGA1UEAwwPcHVwcGV0ZWVyLXRlc3RzMIIBIjAN
BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAooTbPaWO+ydiFYpiCKaCO5NAcIbt
fu/bOv4hgXgPBPeAlwAbuW2fWo2Ub5H+5GDZDYn6NNgm4wd/9/h5zr1ZtA6mZgB6
MVKaXzsRUEHx3JVOzh1/WsqNFTUx1Z6+1kf4DGkPJ/J9ZP50N+FrEVr3sX5XHAwC
NvKHVM3PxP0SoTuoHu9mn8OJwFl5JvzZOM6Y3OdadTiUQax+78HkKdgVEvmS1nu7
R9g+LFz+r+0wvHWekEQQn/JGo/BhP9RF5CpuQfllrmdwKuNC/mQuqf1Q+DrlQ1wM
5kQSTFFzfHdVLMEhJXo9dhtb3fFChHbOaundfPIky3SxWWVuMlxmpkP7iQIDAQAB
o4GTMIGQMB0GA1UdDgQWBBRYsEEs4kLjunGTsOdNuJUdvwzBsTAfBgNVHSMEGDAW
gBRYsEEs4kLjunGTsOdNuJUdvwzBsTAPBgNVHRMBAf8EBTADAQH/MD0GA1UdEQQ2
MDSCF3d3dy5wdXBwZXRlZXItdGVzdHMudGxkghl3d3cucHVwcGV0ZWVyLXRlc3Rz
LTEudGxkMA0GCSqGSIb3DQEBCwUAA4IBAQBs+SOLF3XrTC1ZQk3NAB0Eml5mjSZB
m2Ge1u6NYVYjRCKFiKHwCyBjDuHPYredwpUUB6MSaf7HtZNsrU2irPHsq8HuLBah
jQ2EiONffJ6payBurTTZUUoEG/GoqYRfwM+XXB7ZuzrLkXl7D1RxMymJIOQ+jjko
cZGWRhieauvh1Ws7fKjp0cEyu10VmwHqgRdnc9xtigyxzgmDImuWj2pH0Q3KTkiU
ZaEicFJgsCnzDsGU/KUxdtn2tC+PFIgG8vbMcrlJlGYR5FteW5LWEwd2KDJ/PgP+
MQDwbFkRSKzFlvIzHUSnyUFSCkeYaNZyvtB4XRxRgaKBorXr/AQrlfGC
-----END CERTIFICATE-----
76 changes: 26 additions & 50 deletions utils/testserver/key.pem
@@ -1,52 +1,28 @@
-----BEGIN PRIVATE KEY-----
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
rj/p/2CWVN8OTi7CY5cOTCadHZRyjYA=
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCihNs9pY77J2IV
imIIpoI7k0Bwhu1+79s6/iGBeA8E94CXABu5bZ9ajZRvkf7kYNkNifo02CbjB3/3
+HnOvVm0DqZmAHoxUppfOxFQQfHclU7OHX9ayo0VNTHVnr7WR/gMaQ8n8n1k/nQ3
4WsRWvexflccDAI28odUzc/E/RKhO6ge72afw4nAWXkm/Nk4zpjc51p1OJRBrH7v
weQp2BUS+ZLWe7tH2D4sXP6v7TC8dZ6QRBCf8kaj8GE/1EXkKm5B+WWuZ3Aq40L+
ZC6p/VD4OuVDXAzmRBJMUXN8d1UswSElej12G1vd8UKEds5q6d188iTLdLFZZW4y
XGamQ/uJAgMBAAECggEAaNqExQpK7JmlO7aTt3cOcTd5DODQ2+QOssoBfhGixxaU
XVgRixpCBN9xlGZCaMBfac/KoUuQE0vkcW1b0VnzRStqikbmj2n29VgbvIc/b4zZ
UjxPzZj/W159r5CDGadHT2J9B834vy84dlE2jfT9+ANGWm8ZArCJRdqfoT2SRnk6
mnsRt61j+JxuTfjA3BFcWwGLagvH35i7nSRm+zdYrCfmVCT7dFpPxuiuXZFQvu8E
5WUzb7Hghrosly+U4RxqbYpRzOWepLDFTw3cW/6Wt9KXUnDRRKQ6yRZxWMdRr8wL
kyMcmRDAudlRyuXP4Gspho4/0FOr9FWVGZXjB6FlbQKBgQDRtr/8BIpCiNKIN2im
I9dNxXACDjuvuvfnLjbtWwe7NDWhN5zMkPtldQrGcxYvMaBBvIh1ZVU8EaiqvCZk
NJHIkrVHgR4/wnWJa8QIE/9A+dMrI/4HOxZOruMSGe+i94zMSDddt+mmKE4UB5eO
Jf5wxfPvfudI1OIo8XBo5OBTWwKBgQDGY4BFtkxuNqvG4qPkx+dZc1lZXIMy6Si7
4Kmd8vmeamCcmQhPm4pXhN3hxD/ZUja2iIMI4CPXlVI+6ajCVn9P6V9CBJRPMWEN
jhPijAVladVV9rRtRot7+6GAYd24i88M77kebfh/IAUPVI7UzSy0Ob10JY8PNu2K
oWS2jVMV6wKBgQCi2C/YOIZMCAbDc5M1f5tObsP9NKQwXxTlVUOdqBQmz/HdEFwX
lXVBYVNOqktNtlFk+ktULa20CVpZyeRd51xUzWcq8R5WEGBIp3//bdfF0rihRT+a
yc0WqEL26WDlwSh58JHdmlQ6jA2lDAgpf2NGmtBC5t4d9gDwHhtVuHRhBQKBgB6s
gcfFkPm1gEfHARo9glrFR/pWIH79p+usp+0hBVFmFzv/OVa9sN0pUPk4U7rxSD5e
ywvTRBdwIgBSNmKd5x9e8PiPJrM76kqjPhXYGnl8rJyXAXyn3Kc119m2yAZhr4jL
g+7dh/933vBo3ZCvjIrtJorPx9fNYVr+60iCf2czAoGAIGT1GZGQrn4qOniQBTMw
3eTFkMEwAQ3mnKIDDervayv1mRH8MsaTlFMuWBrt3cgyqDNg/P9hEkD9TUY3jh5F
JHI+a3dMdDW7M/fEDEYyS1vLPwvTRXT6bfgmP3h7D/Yp2ubBbuOlPsDcUyWodNcl
PHIk4Qbu9TGLEOrmgQZ8kuM=
-----END PRIVATE KEY-----