pypi / warehouse

The Python Package Index
https://pypi.org
Apache License 2.0
3.59k stars 966 forks source link

pip fails to download from files.pythonhosted.org: Connection reset by peer (err 104) #4779

Closed vstinner closed 6 years ago

vstinner commented 6 years ago

Hello. I'm getting more and more errors from pip on download files:

Attempt 1:

Downloading 
https://files.pythonhosted.org/packages/7d/9a/1e93d41708f8ed2b564395edfa3389f0fd6d567597401c2e5e2775118d8b/psutil-5.4.7.tar.gz (420kB)
ProtocolError: ("Connection broken: error(104, 'Connection reset by peer')", error(104, 'Connection reset by peer'))

Attempt 2:

Downloading 
https://files.pythonhosted.org/packages/fc/1b/c499026353d48cbf45e325017da2246110802c5095c99c903cb70ba68102/dulwich-0.19.6.tar.gz 
                  (349kB)
ProtocolError: ("Connection broken: error(104, 'Connection reset by peer')", error(104, 'Connection reset by peer'))

I used tox to create a venv to test oslo.messaging.

My Platform

My OS is Fedora 28. I live in France. My ISP is Orange. I have a DSL box.

Network telemetry

My IPv6 path to files.pythonhosted.org according to MTR:

apu (2a01:cb1c:4af:5600:e8f1:b655:8c6e:f3b5)           2018-09-28T14:23:53+0200
Keys:  Help   Display mode   Restart statistics   Order of fields   quit
                                       Packets               Pings
 Host                                Loss%   Snt   Last   Avg  Best  Wrst StDev
 1. 2a01:cb1c:4af:5600:b2b2:8fff:fe9  0.0%     4    0.5   0.6   0.4   1.0   0.3
 2. 2a01cb08a004020d0193025300750016  0.0%     4    9.8  28.1   9.8  43.9  14.7
 3. 2a01:cfc4:0:1f00::a               0.0%     3   46.5  44.7  39.9  47.8   4.2
 4. ae106-0.pastr3.paris.opentransit  0.0%     3   29.1  49.2  29.1  62.1  17.7
 5. xe-9-1-1.edge3.Amsterdam.Level3.  0.0%     3   38.1  48.5  38.1  58.5  10.2
 6. lo-0-v6.ear2.Amsterdam1.Level3.n  0.0%     3   55.1  64.1  55.1  76.6  11.1
 7. 2001:1900:5:2:2::3e92             0.0%     3   43.0  55.0  43.0  71.2  14.5
 8. ???
 9. 2a04:4e42:9::319                  0.0%     3   53.5  54.7  53.5  55.8   1.1

(No packet loss)

DNS Resolution

dig pypi.org A

; <<>> DiG 9.11.4-P1-RedHat-9.11.4-5.P1.fc28 <<>> pypi.org A
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60329
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;pypi.org.          IN  A

;; ANSWER SECTION:
pypi.org.       60  IN  A   151.101.128.223
pypi.org.       60  IN  A   151.101.64.223
pypi.org.       60  IN  A   151.101.0.223
pypi.org.       60  IN  A   151.101.192.223

;; Query time: 42 msec
;; SERVER: 10.38.5.26#53(10.38.5.26)
;; WHEN: ven. sept. 28 14:36:53 CEST 2018
;; MSG SIZE  rcvd: 101
dig pypi.org AAAA

; <<>> DiG 9.11.4-P1-RedHat-9.11.4-5.P1.fc28 <<>> pypi.org AAAA
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6898
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;pypi.org.          IN  AAAA

;; ANSWER SECTION:
pypi.org.       60  IN  AAAA    2a04:4e42:200::223
pypi.org.       60  IN  AAAA    2a04:4e42::223
pypi.org.       60  IN  AAAA    2a04:4e42:400::223
pypi.org.       60  IN  AAAA    2a04:4e42:600::223

;; Query time: 40 msec
;; SERVER: 10.38.5.26#53(10.38.5.26)
;; WHEN: ven. sept. 28 14:37:04 CEST 2018
;; MSG SIZE  rcvd: 149
dig files.pythonhosted.org A

; <<>> DiG 9.11.4-P1-RedHat-9.11.4-5.P1.fc28 <<>> files.pythonhosted.org A
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62820
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;files.pythonhosted.org.        IN  A

;; ANSWER SECTION:
files.pythonhosted.org. 60  IN  CNAME   dualstack.r.ssl.global.fastly.net.
dualstack.r.ssl.global.fastly.net. 30 IN A  151.101.37.63

;; Query time: 45 msec
;; SERVER: 10.38.5.26#53(10.38.5.26)
;; WHEN: ven. sept. 28 14:37:16 CEST 2018
;; MSG SIZE  rcvd: 114
dig files.pythonhosted.org AAAA

; <<>> DiG 9.11.4-P1-RedHat-9.11.4-5.P1.fc28 <<>> files.pythonhosted.org AAAA
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61124
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;files.pythonhosted.org.        IN  AAAA

;; ANSWER SECTION:
files.pythonhosted.org. 49  IN  CNAME   dualstack.r.ssl.global.fastly.net.
dualstack.r.ssl.global.fastly.net. 30 IN AAAA   2a04:4e42:9::319

;; Query time: 34 msec
;; SERVER: 10.38.5.26#53(10.38.5.26)
;; WHEN: ven. sept. 28 14:37:27 CEST 2018
;; MSG SIZE  rcvd: 126

Traceroutes

IPv4

traceroute pypi.org
vstinner@apu$ traceroute pypi.org
traceroute to pypi.org (151.101.64.223), 30 hops max, 60 byte packets
 1  _gateway (192.168.1.1)  0.499 ms  0.462 ms  0.461 ms
 2  80.10.235.57 (80.10.235.57)  9.929 ms  9.905 ms  10.365 ms
 3  lag-101.ncmar202.Marseille3eArrondissement.francetelecom.net (193.253.86.222)  11.788 ms  12.458 ms  13.880 ms
 4  ae41-0.nimar102.Marseille3eArrondissement.francetelecom.net (193.252.161.29)  16.825 ms  17.476 ms  18.160 ms
 5  193.252.137.54 (193.252.137.54)  28.417 ms  29.064 ms  29.770 ms
 6  213.248.72.185 (213.248.72.185)  37.162 ms  26.696 ms  27.310 ms
 7  prs-bb4-link.telia.net (62.115.121.72)  28.733 ms prs-bb3-link.telia.net (213.155.134.222)  26.765 ms prs-bb4-link.telia.net (62.115.120.28)  28.073 ms
 8  prs-b8-link.telia.net (62.115.138.133)  28.033 ms prs-b8-link.telia.net (62.115.138.139)  30.296 ms  30.241 ms
 9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *
traceroute files.pythonhosted.org
traceroute to files.pythonhosted.org (151.101.37.63), 30 hops max, 60 byte packets
 1  _gateway (192.168.1.1)  0.468 ms  0.403 ms  0.468 ms
 2  80.10.235.57 (80.10.235.57)  9.285 ms  9.973 ms  10.553 ms
 3  lag-101.ncmar202.Marseille3eArrondissement.francetelecom.net (193.253.86.222)  11.858 ms  12.561 ms  13.234 ms
 4  ae41-0.nimar102.Marseille3eArrondissement.francetelecom.net (193.252.161.29)  14.669 ms  17.041 ms  17.694 ms
 5  193.252.137.54 (193.252.137.54)  27.793 ms  28.499 ms  29.137 ms
 6  * * *
 7  * ae-2-2.ear2.Amsterdam1.Level3.net (4.69.203.206)  32.068 ms  32.376 ms
 8  * * *
 9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *

IPv6 (If available)

traceroute6 pypi.org
traceroute to pypi.org (2a04:4e42:400::223), 30 hops max, 80 byte packets
 1  2a01:cb1c:4af:5600:b2b2:8fff:fe9b:a9f0 (2a01:cb1c:4af:5600:b2b2:8fff:fe9b:a9f0)  2.274 ms  2.176 ms  2.106 ms
 2  2a01cb08a004020d0193025300750016.ipv6.abo.wanadoo.fr (2a01:cb08:a004:20d:193:253:75:16)  10.070 ms  11.619 ms  12.224 ms
 3  2a01:cfc4:0:1f00::a (2a01:cfc4:0:1f00::a)  15.260 ms  17.399 ms  17.373 ms
 4  ae102-0.marcr6.marseille.opentransit.net (2a01:cfc4:0:2100::9)  18.635 ms  23.828 ms  23.795 ms
 5  * * *
 6  edgecast.GW.opentransit.net (2001:688:0:3:3::a6)  25.304 ms  10.803 ms  18.840 ms
 7  rio5-loop0-v6.rio.seabone.net (2001:41a8:5220::5)  286.627 ms  252.852 ms  261.276 ms
 8  * * *
 9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *
traceroute6 files.pythonhosted.org
traceroute to files.pythonhosted.org (2a04:4e42:9::319), 30 hops max, 80 byte packets
 1  2a01:cb1c:4af:5600:b2b2:8fff:fe9b:a9f0 (2a01:cb1c:4af:5600:b2b2:8fff:fe9b:a9f0)  0.513 ms  0.433 ms  0.465 ms
 2  2a01cb08a004020d0193025300750016.ipv6.abo.wanadoo.fr (2a01:cb08:a004:20d:193:253:75:16)  9.949 ms  11.287 ms  12.692 ms
 3  2a01:cfc4:0:1f00::a (2a01:cfc4:0:1f00::a)  17.094 ms  17.594 ms  19.013 ms
 4  ae106-0.pastr3.paris.opentransit.net (2a01:cfc4:0:2100::3)  33.656 ms  33.631 ms  33.578 ms
 5  xe-9-1-1.edge3.Amsterdam.Level3.net (2001:1900:5:3::205)  31.426 ms  32.699 ms  33.342 ms
 6  lo-0-v6.ear2.Amsterdam1.Level3.net (2001:1900:2::3:5e)  48.896 ms  31.802 ms  33.127 ms
 7  * * *
 8  * * *
 9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *

HTTPS Requests

IPv4

curl -vvv -I --ipv4 https://pypi.org/pypi/pip/json
*   Trying 151.101.128.223...
* TCP_NODELAY set
* Connected to pypi.org (151.101.128.223) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
  CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Client hello (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
* ALPN, server accepted to use h2
* Server certificate:
*  subject: businessCategory=Private Organization; jurisdictionC=US; jurisdictionST=Delaware; serialNumber=3359300; C=US; ST=New Hampshire; L=Wolfeboro; O=Python Software Foundation; CN=www.python.org
*  start date: Sep 18 00:00:00 2018 GMT
*  expire date: Oct 14 12:00:00 2020 GMT
*  subjectAltName: host "pypi.org" matched cert's "pypi.org"
*  issuer: C=US; O=DigiCert Inc; OU=www.digicert.com; CN=DigiCert SHA2 Extended Validation Server CA
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x5604ba7a3230)
> HEAD /pypi/pip/json HTTP/2
> Host: pypi.org
> User-Agent: curl/7.59.0
> Accept: */*
> 
* Connection state changed (MAX_CONCURRENT_STREAMS == 100)!
< HTTP/2 200 
HTTP/2 200 
< access-control-allow-headers: Content-Type, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since
access-control-allow-headers: Content-Type, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since
< access-control-allow-methods: GET
access-control-allow-methods: GET
< access-control-allow-origin: *
access-control-allow-origin: *
< access-control-expose-headers: X-PyPI-Last-Serial
access-control-expose-headers: X-PyPI-Last-Serial
< access-control-max-age: 86400
access-control-max-age: 86400
< cache-control: max-age=900, public
cache-control: max-age=900, public
< content-security-policy: base-uri 'self'; block-all-mixed-content; connect-src 'self' https://api.github.com/repos/ *.fastly-insights.com sentry.io https://2p66nmmycsj3.statuspage.io; default-src 'none'; font-src 'self' fonts.gstatic.com; form-action 'self'; frame-ancestors 'none'; frame-src 'none'; img-src 'self' https://warehouse-camo.cmh1.psfhosted.org/ www.google-analytics.com *.fastly-insights.com; script-src 'self' www.googletagmanager.com www.google-analytics.com *.fastly-insights.com https://cdn.ravenjs.com; style-src 'self' fonts.googleapis.com; worker-src *.fastly-insights.com
content-security-policy: base-uri 'self'; block-all-mixed-content; connect-src 'self' https://api.github.com/repos/ *.fastly-insights.com sentry.io https://2p66nmmycsj3.statuspage.io; default-src 'none'; font-src 'self' fonts.gstatic.com; form-action 'self'; frame-ancestors 'none'; frame-src 'none'; img-src 'self' https://warehouse-camo.cmh1.psfhosted.org/ www.google-analytics.com *.fastly-insights.com; script-src 'self' www.googletagmanager.com www.google-analytics.com *.fastly-insights.com https://cdn.ravenjs.com; style-src 'self' fonts.googleapis.com; worker-src *.fastly-insights.com
< content-type: application/json
content-type: application/json
< etag: "P9p5gQ7E+/Bg2jMoOIRv8A"
etag: "P9p5gQ7E+/Bg2jMoOIRv8A"
< referrer-policy: origin-when-cross-origin
referrer-policy: origin-when-cross-origin
< server: nginx/1.13.9
server: nginx/1.13.9
< x-pypi-last-serial: 4089856
x-pypi-last-serial: 4089856
< accept-ranges: bytes
accept-ranges: bytes
< date: Fri, 28 Sep 2018 12:38:58 GMT
date: Fri, 28 Sep 2018 12:38:58 GMT
< age: 52742
age: 52742
< x-served-by: cache-iad2131-IAD, cache-cdg20751-CDG
x-served-by: cache-iad2131-IAD, cache-cdg20751-CDG
< x-cache: HIT, HIT
x-cache: HIT, HIT
< x-cache-hits: 2, 5
x-cache-hits: 2, 5
< x-timer: S1538138338.033410,VS0,VE0
x-timer: S1538138338.033410,VS0,VE0
< vary: Accept-Encoding, Accept-Encoding
vary: Accept-Encoding, Accept-Encoding
< strict-transport-security: max-age=31536000; includeSubDomains; preload
strict-transport-security: max-age=31536000; includeSubDomains; preload
< x-frame-options: deny
x-frame-options: deny
< x-xss-protection: 1; mode=block
x-xss-protection: 1; mode=block
< x-content-type-options: nosniff
x-content-type-options: nosniff
< x-permitted-cross-domain-policies: none
x-permitted-cross-domain-policies: none
< content-length: 62281
content-length: 62281

< 
* Connection #0 to host pypi.org left intact
curl -vvv -I --ipv4 https://files.pythonhosted.org/packages/ae/e8/2340d46ecadb1692a1e455f13f75e596d4eab3d11a57446f08259dee8f02/pip-10.0.1.tar.gz
*   Trying 151.101.37.63...
* TCP_NODELAY set
* Connected to files.pythonhosted.org (151.101.37.63) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
  CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Client hello (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
* ALPN, server accepted to use h2
* Server certificate:
*  subject: C=US; ST=California; L=San Francisco; O=Fastly, Inc; CN=r.ssl.fastly.net
*  start date: Sep  4 19:42:10 2018 GMT
*  expire date: Apr 14 16:28:35 2019 GMT
*  subjectAltName: host "files.pythonhosted.org" matched cert's "*.pythonhosted.org"
*  issuer: C=BE; O=GlobalSign nv-sa; CN=GlobalSign CloudSSL CA - SHA256 - G3
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x55cf5378d230)
> HEAD /packages/ae/e8/2340d46ecadb1692a1e455f13f75e596d4eab3d11a57446f08259dee8f02/pip-10.0.1.tar.gz HTTP/2
> Host: files.pythonhosted.org
> User-Agent: curl/7.59.0
> Accept: */*
> 
* Connection state changed (MAX_CONCURRENT_STREAMS == 100)!
< HTTP/2 200 
HTTP/2 200 
< x-amz-id-2: ahQmRCsQ1MvloWXBn5b3PFo4IEaxsu09vrsRqDAkTpK5Dj+STcj36hkA+qadmwmvHah2163j1DU=
x-amz-id-2: ahQmRCsQ1MvloWXBn5b3PFo4IEaxsu09vrsRqDAkTpK5Dj+STcj36hkA+qadmwmvHah2163j1DU=
< x-amz-request-id: 65B10A0F03D65846
x-amz-request-id: 65B10A0F03D65846
< last-modified: Thu, 19 Apr 2018 18:56:10 GMT
last-modified: Thu, 19 Apr 2018 18:56:10 GMT
< etag: "83a177756e2c801d0b3a6f7b0d4f3f7e"
etag: "83a177756e2c801d0b3a6f7b0d4f3f7e"
< x-amz-version-id: 1N.JvpbFmUQle7Hn0tnUuxQqUTsn5iEu
x-amz-version-id: 1N.JvpbFmUQle7Hn0tnUuxQqUTsn5iEu
< content-type: binary/octet-stream
content-type: binary/octet-stream
< server: AmazonS3
server: AmazonS3
< cache-control: max-age=365000000, immutable, public
cache-control: max-age=365000000, immutable, public
< accept-ranges: bytes
accept-ranges: bytes
< date: Fri, 28 Sep 2018 12:39:16 GMT
date: Fri, 28 Sep 2018 12:39:16 GMT
< age: 2022546
age: 2022546
< x-served-by: cache-sea1022-SEA, cache-ams4424-AMS
x-served-by: cache-sea1022-SEA, cache-ams4424-AMS
< x-cache: HIT, HIT
x-cache: HIT, HIT
< x-cache-hits: 1, 1
x-cache-hits: 1, 1
< x-timer: S1538138356.367450,VS0,VE28
x-timer: S1538138356.367450,VS0,VE28
< strict-transport-security: max-age=31536000; includeSubDomains; preload
strict-transport-security: max-age=31536000; includeSubDomains; preload
< x-frame-options: deny
x-frame-options: deny
< x-xss-protection: 1; mode=block
x-xss-protection: 1; mode=block
< x-content-type-options: nosniff
x-content-type-options: nosniff
< x-permitted-cross-domain-policies: none
x-permitted-cross-domain-policies: none
< x-robots-header: noindex
x-robots-header: noindex
< content-length: 1246072
content-length: 1246072

< 
* Connection #0 to host files.pythonhosted.org left intact

IPv6 (If available)

curl -vvv -I --ipv6 https://pypi.org/pypi/pip/json
*   Trying 2a04:4e42:400::223...
* TCP_NODELAY set
* Connected to pypi.org (2a04:4e42:400::223) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
  CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Client hello (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
* ALPN, server accepted to use h2
* Server certificate:
*  subject: businessCategory=Private Organization; jurisdictionC=US; jurisdictionST=Delaware; serialNumber=3359300; C=US; ST=New Hampshire; L=Wolfeboro; O=Python Software Foundation; CN=www.python.org
*  start date: Sep 18 00:00:00 2018 GMT
*  expire date: Oct 14 12:00:00 2020 GMT
*  subjectAltName: host "pypi.org" matched cert's "pypi.org"
*  issuer: C=US; O=DigiCert Inc; OU=www.digicert.com; CN=DigiCert SHA2 Extended Validation Server CA
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x559f1d23d230)
> HEAD /pypi/pip/json HTTP/2
> Host: pypi.org
> User-Agent: curl/7.59.0
> Accept: */*
> 
* Connection state changed (MAX_CONCURRENT_STREAMS == 100)!
< HTTP/2 200 
HTTP/2 200 
< access-control-allow-headers: Content-Type, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since
access-control-allow-headers: Content-Type, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since
< access-control-allow-methods: GET
access-control-allow-methods: GET
< access-control-allow-origin: *
access-control-allow-origin: *
< access-control-expose-headers: X-PyPI-Last-Serial
access-control-expose-headers: X-PyPI-Last-Serial
< access-control-max-age: 86400
access-control-max-age: 86400
< cache-control: max-age=900, public
cache-control: max-age=900, public
< content-security-policy: base-uri 'self'; block-all-mixed-content; connect-src 'self' https://api.github.com/repos/ *.fastly-insights.com sentry.io https://2p66nmmycsj3.statuspage.io; default-src 'none'; font-src 'self' fonts.gstatic.com; form-action 'self'; frame-ancestors 'none'; frame-src 'none'; img-src 'self' https://warehouse-camo.cmh1.psfhosted.org/ www.google-analytics.com *.fastly-insights.com; script-src 'self' www.googletagmanager.com www.google-analytics.com *.fastly-insights.com https://cdn.ravenjs.com; style-src 'self' fonts.googleapis.com; worker-src *.fastly-insights.com
content-security-policy: base-uri 'self'; block-all-mixed-content; connect-src 'self' https://api.github.com/repos/ *.fastly-insights.com sentry.io https://2p66nmmycsj3.statuspage.io; default-src 'none'; font-src 'self' fonts.gstatic.com; form-action 'self'; frame-ancestors 'none'; frame-src 'none'; img-src 'self' https://warehouse-camo.cmh1.psfhosted.org/ www.google-analytics.com *.fastly-insights.com; script-src 'self' www.googletagmanager.com www.google-analytics.com *.fastly-insights.com https://cdn.ravenjs.com; style-src 'self' fonts.googleapis.com; worker-src *.fastly-insights.com
< content-type: application/json
content-type: application/json
< etag: "P9p5gQ7E+/Bg2jMoOIRv8A"
etag: "P9p5gQ7E+/Bg2jMoOIRv8A"
< referrer-policy: origin-when-cross-origin
referrer-policy: origin-when-cross-origin
< server: nginx/1.13.9
server: nginx/1.13.9
< x-pypi-last-serial: 4089856
x-pypi-last-serial: 4089856
< accept-ranges: bytes
accept-ranges: bytes
< date: Fri, 28 Sep 2018 12:39:29 GMT
date: Fri, 28 Sep 2018 12:39:29 GMT
< age: 52774
age: 52774
< x-served-by: cache-iad2130-IAD, cache-gig17021-GIG
x-served-by: cache-iad2130-IAD, cache-gig17021-GIG
< x-cache: HIT, HIT
x-cache: HIT, HIT
< x-cache-hits: 1, 1
x-cache-hits: 1, 1
< x-timer: S1538138369.345745,VS0,VE128
x-timer: S1538138369.345745,VS0,VE128
< vary: Accept-Encoding, Accept-Encoding
vary: Accept-Encoding, Accept-Encoding
< strict-transport-security: max-age=31536000; includeSubDomains; preload
strict-transport-security: max-age=31536000; includeSubDomains; preload
< x-frame-options: deny
x-frame-options: deny
< x-xss-protection: 1; mode=block
x-xss-protection: 1; mode=block
< x-content-type-options: nosniff
x-content-type-options: nosniff
< x-permitted-cross-domain-policies: none
x-permitted-cross-domain-policies: none
< content-length: 62281
content-length: 62281

< 
* Connection #0 to host pypi.org left intact
curl -vvv -I --ipv6 https://files.pythonhosted.org/packages/ae/e8/2340d46ecadb1692a1e455f13f75e596d4eab3d11a57446f08259dee8f02/pip-10.0.1.tar.gz
*   Trying 2a04:4e42:9::319...
* TCP_NODELAY set
* Connected to files.pythonhosted.org (2a04:4e42:9::319) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
  CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Client hello (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
* ALPN, server accepted to use h2
* Server certificate:
*  subject: C=US; ST=California; L=San Francisco; O=Fastly, Inc; CN=r.ssl.fastly.net
*  start date: Sep  4 19:42:10 2018 GMT
*  expire date: Apr 14 16:28:35 2019 GMT
*  subjectAltName: host "files.pythonhosted.org" matched cert's "*.pythonhosted.org"
*  issuer: C=BE; O=GlobalSign nv-sa; CN=GlobalSign CloudSSL CA - SHA256 - G3
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x562b9275f230)
> HEAD /packages/ae/e8/2340d46ecadb1692a1e455f13f75e596d4eab3d11a57446f08259dee8f02/pip-10.0.1.tar.gz HTTP/2
> Host: files.pythonhosted.org
> User-Agent: curl/7.59.0
> Accept: */*
> 
* Connection state changed (MAX_CONCURRENT_STREAMS == 100)!
< HTTP/2 200 
HTTP/2 200 
< x-amz-id-2: ahQmRCsQ1MvloWXBn5b3PFo4IEaxsu09vrsRqDAkTpK5Dj+STcj36hkA+qadmwmvHah2163j1DU=
x-amz-id-2: ahQmRCsQ1MvloWXBn5b3PFo4IEaxsu09vrsRqDAkTpK5Dj+STcj36hkA+qadmwmvHah2163j1DU=
< x-amz-request-id: 65B10A0F03D65846
x-amz-request-id: 65B10A0F03D65846
< last-modified: Thu, 19 Apr 2018 18:56:10 GMT
last-modified: Thu, 19 Apr 2018 18:56:10 GMT
< etag: "83a177756e2c801d0b3a6f7b0d4f3f7e"
etag: "83a177756e2c801d0b3a6f7b0d4f3f7e"
< x-amz-version-id: 1N.JvpbFmUQle7Hn0tnUuxQqUTsn5iEu
x-amz-version-id: 1N.JvpbFmUQle7Hn0tnUuxQqUTsn5iEu
< content-type: binary/octet-stream
content-type: binary/octet-stream
< server: AmazonS3
server: AmazonS3
< cache-control: max-age=365000000, immutable, public
cache-control: max-age=365000000, immutable, public
< accept-ranges: bytes
accept-ranges: bytes
< date: Fri, 28 Sep 2018 12:39:41 GMT
date: Fri, 28 Sep 2018 12:39:41 GMT
< age: 2022572
age: 2022572
< x-served-by: cache-sea1022-SEA, cache-ams4123-AMS
x-served-by: cache-sea1022-SEA, cache-ams4123-AMS
< x-cache: HIT, HIT
x-cache: HIT, HIT
< x-cache-hits: 1, 1
x-cache-hits: 1, 1
< x-timer: S1538138382.861302,VS0,VE9
x-timer: S1538138382.861302,VS0,VE9
< strict-transport-security: max-age=31536000; includeSubDomains; preload
strict-transport-security: max-age=31536000; includeSubDomains; preload
< x-frame-options: deny
x-frame-options: deny
< x-xss-protection: 1; mode=block
x-xss-protection: 1; mode=block
< x-content-type-options: nosniff
x-content-type-options: nosniff
< x-permitted-cross-domain-policies: none
x-permitted-cross-domain-policies: none
< x-robots-header: noindex
x-robots-header: noindex
< content-length: 1246072
content-length: 1246072

< 
* Connection #0 to host files.pythonhosted.org left intact

TLS Debug

IPv4

echo -n | openssl s_client -4 -connect pypi.org:443
CONNECTED(00000003)
depth=2 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert High Assurance EV Root CA
verify return:1
depth=1 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert SHA2 Extended Validation Server CA
verify return:1
depth=0 businessCategory = Private Organization, jurisdictionC = US, jurisdictionST = Delaware, serialNumber = 3359300, C = US, ST = New Hampshire, L = Wolfeboro, O = Python Software Foundation, CN = www.python.org
verify return:1
---
Certificate chain
 0 s:/businessCategory=Private Organization/jurisdictionC=US/jurisdictionST=Delaware/serialNumber=3359300/C=US/ST=New Hampshire/L=Wolfeboro/O=Python Software Foundation/CN=www.python.org
   i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA
 1 s:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA
   i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert High Assurance EV Root CA
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIIczCCB1ugAwIBAgIQDl7PGBeDAG2brEU2EfVJEjANBgkqhkiG9w0BAQsFADB1
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMTQwMgYDVQQDEytEaWdpQ2VydCBTSEEyIEV4dGVuZGVk
IFZhbGlkYXRpb24gU2VydmVyIENBMB4XDTE4MDkxODAwMDAwMFoXDTIwMTAxNDEy
MDAwMFowgdgxHTAbBgNVBA8MFFByaXZhdGUgT3JnYW5pemF0aW9uMRMwEQYLKwYB
BAGCNzwCAQMTAlVTMRkwFwYLKwYBBAGCNzwCAQITCERlbGF3YXJlMRAwDgYDVQQF
EwczMzU5MzAwMQswCQYDVQQGEwJVUzEWMBQGA1UECBMNTmV3IEhhbXBzaGlyZTES
MBAGA1UEBxMJV29sZmVib3JvMSMwIQYDVQQKExpQeXRob24gU29mdHdhcmUgRm91
bmRhdGlvbjEXMBUGA1UEAxMOd3d3LnB5dGhvbi5vcmcwggEiMA0GCSqGSIb3DQEB
AQUAA4IBDwAwggEKAoIBAQD2roGTDc+m3g3mReIf7j5rzLovnk3Zggvy2kWWMnDB
Yz2m6sgxOL1pkzIu7YNe4noH7ZRym0OIQjZbDIleB7SOGAoD2BBv+Mv79HtedJ3d
vhXwmgRenlNxBxhDcaVLDONVC9Ir3Ft46uuGIrXnKB8L1KZV6h8IFC2G3GZXJtkw
EojXdmJFzuRrKMRi0cLPlF60upRISIj3jg9kK4D+f0xYrsQAJvK0veqRsNQ8bXPE
YR8kG4Paj7rOeh3FVGxrKOKNpoI+kV6EqOVIhJY698P7EbDLGjG2Im9P6VFmwXod
YAZ2CTFaMlrC0FljAO/FKeQKR29vitthLMutcd+AkoDDAgMBAAGjggSZMIIElTAf
BgNVHSMEGDAWgBQ901Cl1qCt7vNKYApl0yHU+PjWDzAdBgNVHQ4EFgQUUTsyHAXZ
y6d2HWn+8MZNUhBCkEwwggFCBgNVHREEggE5MIIBNYIOd3d3LnB5dGhvbi5vcmeC
D2RvY3MucHl0aG9uLm9yZ4IPYnVncy5weXRob24ub3Jngg93aWtpLnB5dGhvbi5v
cmeCDWhnLnB5dGhvbi5vcmeCD21haWwucHl0aG9uLm9yZ4IPcHlwaS5weXRob24u
b3JnghRwYWNrYWdpbmcucHl0aG9uLm9yZ4IQbG9naW4ucHl0aG9uLm9yZ4ISZGlz
Y3Vzcy5weXRob24ub3Jnggx1cy5weWNvbi5vcmeCB3B5cGkuaW+CDGRvY3MucHlw
aS5pb4IIcHlwaS5vcmeCDWRvY3MucHlwaS5vcmeCD2RvbmF0ZS5weXBpLm9yZ4IT
ZGV2Z3VpZGUucHl0aG9uLm9yZ4ITd3d3LmJ1Z3MucHl0aG9uLm9yZ4IKcHl0aG9u
Lm9yZzAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUF
BwMCMHUGA1UdHwRuMGwwNKAyoDCGLmh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9z
aGEyLWV2LXNlcnZlci1nMi5jcmwwNKAyoDCGLmh0dHA6Ly9jcmw0LmRpZ2ljZXJ0
LmNvbS9zaGEyLWV2LXNlcnZlci1nMi5jcmwwSwYDVR0gBEQwQjA3BglghkgBhv1s
AgEwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQuY29tL0NQUzAH
BgVngQwBATCBiAYIKwYBBQUHAQEEfDB6MCQGCCsGAQUFBzABhhhodHRwOi8vb2Nz
cC5kaWdpY2VydC5jb20wUgYIKwYBBQUHMAKGRmh0dHA6Ly9jYWNlcnRzLmRpZ2lj
ZXJ0LmNvbS9EaWdpQ2VydFNIQTJFeHRlbmRlZFZhbGlkYXRpb25TZXJ2ZXJDQS5j
cnQwDAYDVR0TAQH/BAIwADCCAX8GCisGAQQB1nkCBAIEggFvBIIBawFpAHcA7ku9
t3XOYLrhQmkfq+GeZqMPfl+wctiDAMR7iXqo/csAAAFl7l3MWwAABAMASDBGAiEA
qfAJSfOHG4r8YvzTkZsr8cEXFcnFIns40+JXVdgY0vsCIQCvnB+YExtMRQVQXONc
glOTsIYmNgYPrtyHYsTj/Xua5QB3AFYUBpov18Ls0/XhvUSyPsdGdrm8mRFcwO+U
mFXWidDdAAABZe5dzHoAAAQDAEgwRgIhAIF6xXakKVdREciK8aM2z1c71eiU8qF/
UCZbl4sEfLTQAiEA870pR9Hazod3FgZszr9itk8sYPLoQjV9/WENl0HXXGwAdQC7
2d+8H4pxtZOUI5eqkntHOFeVCqtS6BqQlmQ2jh7RhQAAAWXuXcwzAAAEAwBGMEQC
IAeIvcaqPATJrCo3+ceBlVbsyPJcDPM7QGLpaRPFBduQAiBHNfcsBLaelS9bUmfU
R0VjJLoTA39AJAj8oU6iAzruHDANBgkqhkiG9w0BAQsFAAOCAQEAwH5+PXougfo5
qMVIE65Dei/CEb4ahZfoMvvlJRvuNAI/ARWYQSHh6IKXdxFxIE5hCC/NNtdAcc1p
CoZ2+IM/x0cGBjHZegSjhXfQy+w7twfgyeTSNalV2jzKQ0Yv/JvfI9qiMdhEQbfL
qaQ6Nj/js8uvQqWf6w8yo7hAzKs1jTF7Wy/cM0lvqNocDWYROhAVcI+jSMKwlcLv
75xAbOZqw2D483mkQizVj7wQ1fYP3Tr0wfvFNeoIAPUXLrEHiEmHWA0h+U9KEgVf
VQ3PvzItecKWFI+0d9RpNupc1HdipBCySvnNa1LcG2AviYXpIsbo8EBvbj0HcEVx
7NEANHNX2g==
-----END CERTIFICATE-----
subject=/businessCategory=Private Organization/jurisdictionC=US/jurisdictionST=Delaware/serialNumber=3359300/C=US/ST=New Hampshire/L=Wolfeboro/O=Python Software Foundation/CN=www.python.org
issuer=/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA
---
No client certificate CA names sent
Peer signing digest: SHA512
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 4005 bytes and written 317 bytes
Verification: OK
---
New, TLSv1.2, Cipher is ECDHE-RSA-AES128-GCM-SHA256
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES128-GCM-SHA256
    Session-ID: 4BE10EEF800C998CD4CC048792B61883D479A2D704027F18C2EF3F64B1DCFA9A
    Session-ID-ctx: 
    Master-Key: E5BAB325C53F49CFEDA760036FE6ABBAA6C526FB02516C7CAF6DA2C8D5922B26E8094C727C192E6C17D2527973747D3D
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 7200 (seconds)
    TLS session ticket:
    0000 - cb 46 9a 90 b0 8c f4 ec-b5 a0 ea a0 bb 39 54 16   .F...........9T.
    0010 - 40 88 44 7e 42 bc 75 fe-9a a2 43 e3 09 4e 35 3e   @.D~B.u...C..N5>
    0020 - 4b f3 b7 88 2f c0 97 96-3e 4c a4 3e fe d8 32 e1   K.../...>L.>..2.
    0030 - 2e cc 1c 0f 03 d9 d5 94-6e 91 ed 5f b7 23 f8 7c   ........n.._.#.|
    0040 - fe bd 2a 92 79 33 6f 9b-8c 3e 6e d5 2f 5b 6e 7a   ..*.y3o..>n./[nz
    0050 - 24 75 f4 7e df c8 ae 64-be 75 a7 06 4b db 15 71   $u.~...d.u..K..q
    0060 - 7c 23 75 11 b0 78 c6 3c-63 23 22 e6 54 5c c3 e4   |#u..x.<c#".T\..
    0070 - ad 97 e6 eb 07 17 a9 c1-d5 03 09 7c 83 e6 ca 8d   ...........|....
    0080 - 01 3b 2d 87 e8 14 ee d4-fc 7f 12 74 6f a8 71 08   .;-........to.q.
    0090 - 8d 0d fe c3 39 30 8d 58-86 f6 f2 1f e5 ed b8 71   ....90.X.......q

    Start Time: 1538138394
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: yes
---
DONE
echo -n | openssl s_client -4 -connect files.pythonhosted.org:443
CONNECTED(00000003)
depth=2 C = BE, O = GlobalSign nv-sa, OU = Root CA, CN = GlobalSign Root CA
verify return:1
depth=1 C = BE, O = GlobalSign nv-sa, CN = GlobalSign CloudSSL CA - SHA256 - G3
verify return:1
depth=0 C = US, ST = California, L = San Francisco, O = "Fastly, Inc", CN = r.ssl.fastly.net
verify return:1
---
Certificate chain
 0 s:/C=US/ST=California/L=San Francisco/O=Fastly, Inc/CN=r.ssl.fastly.net
   i:/C=BE/O=GlobalSign nv-sa/CN=GlobalSign CloudSSL CA - SHA256 - G3
 1 s:/C=BE/O=GlobalSign nv-sa/CN=GlobalSign CloudSSL CA - SHA256 - G3
   i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIL3jCCCsagAwIBAgIMU80cnxtlzv++BZDUMA0GCSqGSIb3DQEBCwUAMFcxCzAJ
BgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMS0wKwYDVQQDEyRH
bG9iYWxTaWduIENsb3VkU1NMIENBIC0gU0hBMjU2IC0gRzMwHhcNMTgwOTA0MTk0
MjEwWhcNMTkwNDE0MTYyODM1WjBrMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2Fs
aWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEUMBIGA1UECgwLRmFzdGx5
LCBJbmMxGTAXBgNVBAMMEHIuc3NsLmZhc3RseS5uZXQwggEiMA0GCSqGSIb3DQEB
AQUAA4IBDwAwggEKAoIBAQDTciJwVUeYpeFv0YzWACjrrAg7Qy2yWqLNrGXTJu0m
0bWfeB9kA3gY3gny66LF6W/hYVXtf+oCneDWIpm7eO8DogP+k9H2uwOkCnEXOGog
Jj1QfWnlqYQSpK0HRZ8idm6EglJANXBqK/G+Nbnqb0P68MsdaTKLo1zHyRcEncbZ
OnWAgYkZ1s5CyNQmNhn741JrkXuEcLjuRi5oFP252w8qhcxLAzI9T7pfym9ERcvM
kwZUXUIv9z0qrU3HikASfL6TC2O1qfHwVd4RvR74WOdDHkS02AQWx3NpVbfBLI53
GM/f59vocj3z6cV5TmUcbgrvYt2Lm215mjIOefyzxqlxAgMBAAGjggiUMIIIkDAO
BgNVHQ8BAf8EBAMCBaAwgYoGCCsGAQUFBwEBBH4wfDBCBggrBgEFBQcwAoY2aHR0
cDovL3NlY3VyZS5nbG9iYWxzaWduLmNvbS9jYWNlcnQvY2xvdWRzc2xzaGEyZzMu
Y3J0MDYGCCsGAQUFBzABhipodHRwOi8vb2NzcDIuZ2xvYmFsc2lnbi5jb20vY2xv
dWRzc2xzaGEyZzMwVgYDVR0gBE8wTTBBBgkrBgEEAaAyARQwNDAyBggrBgEFBQcC
ARYmaHR0cHM6Ly93d3cuZ2xvYmFsc2lnbi5jb20vcmVwb3NpdG9yeS8wCAYGZ4EM
AQICMAkGA1UdEwQCMAAwggYkBgNVHREEggYbMIIGF4IQci5zc2wuZmFzdGx5Lm5l
dIINKi5hZGR0aGlzLmNvbYIRKi5hZGR0aGlzZWRnZS5jb22CDCouYWR3ZXJ4LmNv
bYISKi5hbGl0dGxlY3JhZnQuY29tghEqLmFsaXR0bGVjcmFmdC5pdIITKi5hbGl0
dGxlbWFya2V0LmNvbYISKi5hbGl0dGxlbWFya2V0Lml0ghUqLmFsaXR0bGVtZXJj
ZXJpZS5jb22CDyouYmlnaGF0YWRzLmNvbYIOKi5idXp6ZmVlZC5jb22CECouY2F0
Y2hwb2ludC5jb22CCCouY25uLmlvghAqLmNvcmVkbmFjZG4uY29tghUqLmRvbGxh
cnNoYXZlY2x1Yi5jb22CDCouZG9tZmVlLmNvbYILKi5lYXRlci5jb22CECouZmFz
dGx5bGFicy5jb22CHCouZmlsZXMuc2F5bWVkaWEtY29udGVudC5jb22CDCouZmlu
bmNkbi5ub4IIKi5mdC5jb22CDyouZ2VvbmV0Lm9yZy5ueoIUKi5oaXBtdW5rc3Rh
Z2luZy5jb22CECouaG91c2Vsb2dpYy5jb22CCyouaXNzdXUuY29tggkqLmlzdS5w
dWKCESouamFja3RocmVhZHMuY29tgg0qLmxvc3RteS5uYW1lghIqLm1lZXR1cHN0
YXRpYy5jb22CDSoubmV0endlbHQuZGWCCSoubmZsLmNvbYIKKi5wYWdhci5tZYIP
Ki5waWNtb25rZXkuY29tggkqLnB5cGkuaW+CCioucHlwaS5vcmeCEioucHl0aG9u
aG9zdGVkLm9yZ4IPKi5yMjlzdGF0aWMuY29tgg4qLnJlYWxzZWxmLmNvbYIJKi5y
dGJmLmJlgg4qLnNibmF0aW9uLmNvbYILKi5zaGFrci5jb22CEiouc2hpZnRwcmV2
aWV3LmNvbYIQKi5zdGF0aWMucnRiZi5iZYIQKi5zdHJlYW1hYmxlLmNvbYIMKi5z
dXJmbHkuY29tgg4qLnRoZXZlcmdlLmNvbYIPKi50aHJpbGxpc3QuY29tggwqLnRp
c3N1dS5jb22CDSoudm94LWNkbi5jb22CCSoudm94LmNvbYIOKi52b3htZWRpYS5j
b22CCCoudy14LmNvghEqLndhdGNoLmFldG5kLmNvbYIMKi53ZXdvcmsuY29tggph
ZHdlcnguY29tghBhbGl0dGxlY3JhZnQuY29tgg9hbGl0dGxlY3JhZnQuaXSCEWFs
aXR0bGVtYXJrZXQuY29tghBhbGl0dGxlbWFya2V0Lml0ghNhbGl0dGxlbWVyY2Vy
aWUuY29tghZhbHBoYS5lbnRyZXByZW5ldXIuY29tghVhcGkuc2hpZnRjb21tZXJj
ZS5jb22CGmFzc2V0cy1zdGFnaW5nLnRoZW11c2UuY29tggxidXp6ZmVlZC5jb22C
FmRldi5hcGkuY2VyZWJyby5jbm4uaW+CFGRldi5oaXN0b3J5dmF1bHQuY29tghlk
ZXYubGlmZXRpbWVtb3ZpZWNsdWIuY29tggllYXRlci5jb22CEGVudHJlcHJlbmV1
ci5jb22CFGZhc3RseS5zaGlla2hkZXYuY29tggZmdC5jb22CFWgyLmhpcG11bmtz
dGFnaW5nLmNvbYIIaS5nc2UuaW+CC2xvc3RteS5uYW1lghhwcmV2aWV3LmVudHJl
cHJlbmV1ci5jb22CEHB5dGhvbmhvc3RlZC5vcmeCEXFhLnNhZmFyaWZsb3cuY29t
ggxyZWFsc2VsZi5jb22CB3J0YmYuYmWCD3NzbC5uZXR6d2VsdC5kZYIVc3RhdGlj
LnJlZmluZXJ5MjkuY29tghRzdGF0aWMud2l4c3RhdGljLmNvbYIOc3RyZWFtYWJs
ZS5jb22CCnN1cmZseS5jb22CDHRoZXZlcmdlLmNvbYILdm94LWNkbi5jb22CB3Zv
eC5jb22CEHd3dy5kZXhpZ25lci5jb22CFHd3dy5lbnRyZXByZW5ldXIuY29tgg53
d3cuam95ZW50LmNvbYIVd3d3LnFhLnNhZmFyaWZsb3cuY29tghB3d3cuc3RhY2tw
b3AuY29tMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAdBgNVHQ4EFgQU
8WPkxcyYMOyDfYryy2qnZTH95r8wHwYDVR0jBBgwFoAUqSuH4c4kRzsbv8+FNwJV
nQ2UWOYwggEFBgorBgEEAdZ5AgQCBIH2BIHzAPEAdwC72d+8H4pxtZOUI5eqkntH
OFeVCqtS6BqQlmQ2jh7RhQAAAWWmG1BLAAAEAwBIMEYCIQDYsK9L+/NIftYurcIP
63CEJPQi0FzGbEeiw0bFGcp13gIhAL9Ffe3MLilPNtQIByKk1qlvpAn4tmvJvmtQ
1aBfTaweAHYAb1N2rDHwMRnYmQCkURX/dxUcEdkCwQApBo2yCJo32RMAAAFlphtM
UwAABAMARzBFAiEApZw1GW/9wrp6nyZJcYYnozPSoSmqzx6fEbRT6AV3u+ICIG+p
0WA9zu3C1RAHIXPzlYsxGX6iN2hMfVAvrJWvpv3ZMA0GCSqGSIb3DQEBCwUAA4IB
AQBZ1PYcq73IWZHsgeJhlfFQ6LJazsFqr3YCts2mu6EANka4y3K6tHJMz1vOkXmq
/7oOS4esMqK0g2ETsEGUjQlsjwhsoXNoj4rWFrIx0LT3xR1smU10xjdHAfcL3AaU
MQ62ODYP5JfECD8Y8cYqdZ31WmBlky+hnlgPDONYs/FUD+ylfmlYvvReHfmNEAR/
QwZU7nrId7PxXCUFpWuhnEyJNba7vPvViXEIrVw1sAo3Doe4VKi8BQhZ+yoorPaA
RmYDKHs9uyz5c1Myh9XHCKr2VLVVAJT71tD7vSv4QqsBkORxR1GsC3uMCMQNZ4GO
NlGlv74knHhweyvLnWTRijjG
-----END CERTIFICATE-----
subject=/C=US/ST=California/L=San Francisco/O=Fastly, Inc/CN=r.ssl.fastly.net
issuer=/C=BE/O=GlobalSign nv-sa/CN=GlobalSign CloudSSL CA - SHA256 - G3
---
No client certificate CA names sent
Peer signing digest: SHA512
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 4837 bytes and written 317 bytes
Verification: OK
---
New, TLSv1.2, Cipher is ECDHE-RSA-AES128-GCM-SHA256
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES128-GCM-SHA256
    Session-ID: 8727761F1D430DC0B31F7AF6AC0C687C91C47636D5DD35D98D900F64F29E5A7C
    Session-ID-ctx: 
    Master-Key: D213B3A70D45B551F4C6AAC9D9739AF6532E5771307CB16B9CFAC7D89B105D417C91DD2BDEDF7DF403498375E6338D82
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 7200 (seconds)
    TLS session ticket:
    0000 - cb 46 9a 90 b0 8c f4 ec-b5 a0 ea a0 bb 39 54 16   .F...........9T.
    0010 - 48 94 e3 87 ea 76 ad 43-db 67 4a 16 6c f9 2f 6a   H....v.C.gJ.l./j
    0020 - a5 7c 1c 33 be 1d e1 5b-fb 90 75 78 d9 1b 90 31   .|.3...[..ux...1
    0030 - ba 16 14 42 f9 2b be 48-ea e9 21 5b 93 eb 26 88   ...B.+.H..![..&.
    0040 - cf c4 b0 97 bf e6 51 86-9d d8 70 bb dd ef db bf   ......Q...p.....
    0050 - c3 f9 57 9d fe 07 45 9e-ec 64 87 94 de 5a 66 91   ..W...E..d...Zf.
    0060 - bc 96 7a 2f cb 64 6a 12-7b da 26 b3 87 40 30 70   ..z/.dj.{.&..@0p
    0070 - 71 07 d0 71 46 8c 75 21-77 72 7b f7 2e ae b9 20   q..qF.u!wr{.... 
    0080 - 0e 2a 8d 9a 4d 11 9c 02-da e4 03 f2 af 91 80 b0   .*..M...........
    0090 - 7f 83 29 59 39 4f 9d 1e-ba 2e 30 e3 77 45 eb 31   ..)Y9O....0.wE.1

    Start Time: 1538138408
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: yes
---
DONE

IPv6 (If available)

echo -n | openssl s_client -6 -connect pypi.org:443
CONNECTED(00000003)
depth=2 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert High Assurance EV Root CA
verify return:1
depth=1 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert SHA2 Extended Validation Server CA
verify return:1
depth=0 businessCategory = Private Organization, jurisdictionC = US, jurisdictionST = Delaware, serialNumber = 3359300, C = US, ST = New Hampshire, L = Wolfeboro, O = Python Software Foundation, CN = www.python.org
verify return:1
---
Certificate chain
 0 s:/businessCategory=Private Organization/jurisdictionC=US/jurisdictionST=Delaware/serialNumber=3359300/C=US/ST=New Hampshire/L=Wolfeboro/O=Python Software Foundation/CN=www.python.org
   i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA
 1 s:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA
   i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert High Assurance EV Root CA
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIIczCCB1ugAwIBAgIQDl7PGBeDAG2brEU2EfVJEjANBgkqhkiG9w0BAQsFADB1
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMTQwMgYDVQQDEytEaWdpQ2VydCBTSEEyIEV4dGVuZGVk
IFZhbGlkYXRpb24gU2VydmVyIENBMB4XDTE4MDkxODAwMDAwMFoXDTIwMTAxNDEy
MDAwMFowgdgxHTAbBgNVBA8MFFByaXZhdGUgT3JnYW5pemF0aW9uMRMwEQYLKwYB
BAGCNzwCAQMTAlVTMRkwFwYLKwYBBAGCNzwCAQITCERlbGF3YXJlMRAwDgYDVQQF
EwczMzU5MzAwMQswCQYDVQQGEwJVUzEWMBQGA1UECBMNTmV3IEhhbXBzaGlyZTES
MBAGA1UEBxMJV29sZmVib3JvMSMwIQYDVQQKExpQeXRob24gU29mdHdhcmUgRm91
bmRhdGlvbjEXMBUGA1UEAxMOd3d3LnB5dGhvbi5vcmcwggEiMA0GCSqGSIb3DQEB
AQUAA4IBDwAwggEKAoIBAQD2roGTDc+m3g3mReIf7j5rzLovnk3Zggvy2kWWMnDB
Yz2m6sgxOL1pkzIu7YNe4noH7ZRym0OIQjZbDIleB7SOGAoD2BBv+Mv79HtedJ3d
vhXwmgRenlNxBxhDcaVLDONVC9Ir3Ft46uuGIrXnKB8L1KZV6h8IFC2G3GZXJtkw
EojXdmJFzuRrKMRi0cLPlF60upRISIj3jg9kK4D+f0xYrsQAJvK0veqRsNQ8bXPE
YR8kG4Paj7rOeh3FVGxrKOKNpoI+kV6EqOVIhJY698P7EbDLGjG2Im9P6VFmwXod
YAZ2CTFaMlrC0FljAO/FKeQKR29vitthLMutcd+AkoDDAgMBAAGjggSZMIIElTAf
BgNVHSMEGDAWgBQ901Cl1qCt7vNKYApl0yHU+PjWDzAdBgNVHQ4EFgQUUTsyHAXZ
y6d2HWn+8MZNUhBCkEwwggFCBgNVHREEggE5MIIBNYIOd3d3LnB5dGhvbi5vcmeC
D2RvY3MucHl0aG9uLm9yZ4IPYnVncy5weXRob24ub3Jngg93aWtpLnB5dGhvbi5v
cmeCDWhnLnB5dGhvbi5vcmeCD21haWwucHl0aG9uLm9yZ4IPcHlwaS5weXRob24u
b3JnghRwYWNrYWdpbmcucHl0aG9uLm9yZ4IQbG9naW4ucHl0aG9uLm9yZ4ISZGlz
Y3Vzcy5weXRob24ub3Jnggx1cy5weWNvbi5vcmeCB3B5cGkuaW+CDGRvY3MucHlw
aS5pb4IIcHlwaS5vcmeCDWRvY3MucHlwaS5vcmeCD2RvbmF0ZS5weXBpLm9yZ4IT
ZGV2Z3VpZGUucHl0aG9uLm9yZ4ITd3d3LmJ1Z3MucHl0aG9uLm9yZ4IKcHl0aG9u
Lm9yZzAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUF
BwMCMHUGA1UdHwRuMGwwNKAyoDCGLmh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9z
aGEyLWV2LXNlcnZlci1nMi5jcmwwNKAyoDCGLmh0dHA6Ly9jcmw0LmRpZ2ljZXJ0
LmNvbS9zaGEyLWV2LXNlcnZlci1nMi5jcmwwSwYDVR0gBEQwQjA3BglghkgBhv1s
AgEwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQuY29tL0NQUzAH
BgVngQwBATCBiAYIKwYBBQUHAQEEfDB6MCQGCCsGAQUFBzABhhhodHRwOi8vb2Nz
cC5kaWdpY2VydC5jb20wUgYIKwYBBQUHMAKGRmh0dHA6Ly9jYWNlcnRzLmRpZ2lj
ZXJ0LmNvbS9EaWdpQ2VydFNIQTJFeHRlbmRlZFZhbGlkYXRpb25TZXJ2ZXJDQS5j
cnQwDAYDVR0TAQH/BAIwADCCAX8GCisGAQQB1nkCBAIEggFvBIIBawFpAHcA7ku9
t3XOYLrhQmkfq+GeZqMPfl+wctiDAMR7iXqo/csAAAFl7l3MWwAABAMASDBGAiEA
qfAJSfOHG4r8YvzTkZsr8cEXFcnFIns40+JXVdgY0vsCIQCvnB+YExtMRQVQXONc
glOTsIYmNgYPrtyHYsTj/Xua5QB3AFYUBpov18Ls0/XhvUSyPsdGdrm8mRFcwO+U
mFXWidDdAAABZe5dzHoAAAQDAEgwRgIhAIF6xXakKVdREciK8aM2z1c71eiU8qF/
UCZbl4sEfLTQAiEA870pR9Hazod3FgZszr9itk8sYPLoQjV9/WENl0HXXGwAdQC7
2d+8H4pxtZOUI5eqkntHOFeVCqtS6BqQlmQ2jh7RhQAAAWXuXcwzAAAEAwBGMEQC
IAeIvcaqPATJrCo3+ceBlVbsyPJcDPM7QGLpaRPFBduQAiBHNfcsBLaelS9bUmfU
R0VjJLoTA39AJAj8oU6iAzruHDANBgkqhkiG9w0BAQsFAAOCAQEAwH5+PXougfo5
qMVIE65Dei/CEb4ahZfoMvvlJRvuNAI/ARWYQSHh6IKXdxFxIE5hCC/NNtdAcc1p
CoZ2+IM/x0cGBjHZegSjhXfQy+w7twfgyeTSNalV2jzKQ0Yv/JvfI9qiMdhEQbfL
qaQ6Nj/js8uvQqWf6w8yo7hAzKs1jTF7Wy/cM0lvqNocDWYROhAVcI+jSMKwlcLv
75xAbOZqw2D483mkQizVj7wQ1fYP3Tr0wfvFNeoIAPUXLrEHiEmHWA0h+U9KEgVf
VQ3PvzItecKWFI+0d9RpNupc1HdipBCySvnNa1LcG2AviYXpIsbo8EBvbj0HcEVx
7NEANHNX2g==
-----END CERTIFICATE-----
subject=/businessCategory=Private Organization/jurisdictionC=US/jurisdictionST=Delaware/serialNumber=3359300/C=US/ST=New Hampshire/L=Wolfeboro/O=Python Software Foundation/CN=www.python.org
issuer=/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA
---
No client certificate CA names sent
Peer signing digest: SHA512
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 4005 bytes and written 317 bytes
Verification: OK
---
New, TLSv1.2, Cipher is ECDHE-RSA-AES128-GCM-SHA256
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES128-GCM-SHA256
    Session-ID: AE45B94E68C5714F0119A74514D240A43F2113F5B7EF2A76C657D951B706E702
    Session-ID-ctx: 
    Master-Key: E1A0E2DA402750F2DAB0D079293B01B217700CFB23512E76DAFDA8E4FA6724608DFDB89E65B0DF0A85DB8C1D123F607C
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 7200 (seconds)
    TLS session ticket:
    0000 - cb 46 9a 90 b0 8c f4 ec-b5 a0 ea a0 bb 39 54 16   .F...........9T.
    0010 - 69 e9 46 cc f5 91 b2 27-11 f2 50 cb 3c 44 96 04   i.F....'..P.<D..
    0020 - 33 b3 28 21 17 ea 10 c9-ee e6 0e b5 a2 9d 86 67   3.(!...........g
    0030 - 86 96 3b a2 ee e0 c7 09-36 ce ca 78 62 bb e4 76   ..;.....6..xb..v
    0040 - c4 19 5c df d7 85 87 ee-a6 c6 86 78 a2 45 29 fa   ..\........x.E).
    0050 - 87 ce 2b ec fe ad b1 e7-72 07 a6 31 b1 81 d8 97   ..+.....r..1....
    0060 - ef c5 09 7c 99 27 41 5b-2e 4b 49 8f 0a 7e a6 f4   ...|.'A[.KI..~..
    0070 - 48 2c 83 26 56 1a d2 b6-cd 5f b3 da 44 b7 7b 07   H,.&V...._..D.{.
    0080 - c1 70 94 ca 43 3f 0f 92-38 d6 19 cc 18 f6 0b 22   .p..C?..8......"
    0090 - df a3 03 ec 88 27 4e 58-0a 13 b1 37 25 f7 3f 68   .....'NX...7%.?h

    Start Time: 1538138421
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: yes
---
DONE
echo -n | openssl s_client -6 -connect files.pythonhosted.org:443
CONNECTED(00000003)
depth=2 C = BE, O = GlobalSign nv-sa, OU = Root CA, CN = GlobalSign Root CA
verify return:1
depth=1 C = BE, O = GlobalSign nv-sa, CN = GlobalSign CloudSSL CA - SHA256 - G3
verify return:1
depth=0 C = US, ST = California, L = San Francisco, O = "Fastly, Inc", CN = r.ssl.fastly.net
verify return:1
---
Certificate chain
 0 s:/C=US/ST=California/L=San Francisco/O=Fastly, Inc/CN=r.ssl.fastly.net
   i:/C=BE/O=GlobalSign nv-sa/CN=GlobalSign CloudSSL CA - SHA256 - G3
 1 s:/C=BE/O=GlobalSign nv-sa/CN=GlobalSign CloudSSL CA - SHA256 - G3
   i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIL3jCCCsagAwIBAgIMU80cnxtlzv++BZDUMA0GCSqGSIb3DQEBCwUAMFcxCzAJ
BgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMS0wKwYDVQQDEyRH
bG9iYWxTaWduIENsb3VkU1NMIENBIC0gU0hBMjU2IC0gRzMwHhcNMTgwOTA0MTk0
MjEwWhcNMTkwNDE0MTYyODM1WjBrMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2Fs
aWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEUMBIGA1UECgwLRmFzdGx5
LCBJbmMxGTAXBgNVBAMMEHIuc3NsLmZhc3RseS5uZXQwggEiMA0GCSqGSIb3DQEB
AQUAA4IBDwAwggEKAoIBAQDTciJwVUeYpeFv0YzWACjrrAg7Qy2yWqLNrGXTJu0m
0bWfeB9kA3gY3gny66LF6W/hYVXtf+oCneDWIpm7eO8DogP+k9H2uwOkCnEXOGog
Jj1QfWnlqYQSpK0HRZ8idm6EglJANXBqK/G+Nbnqb0P68MsdaTKLo1zHyRcEncbZ
OnWAgYkZ1s5CyNQmNhn741JrkXuEcLjuRi5oFP252w8qhcxLAzI9T7pfym9ERcvM
kwZUXUIv9z0qrU3HikASfL6TC2O1qfHwVd4RvR74WOdDHkS02AQWx3NpVbfBLI53
GM/f59vocj3z6cV5TmUcbgrvYt2Lm215mjIOefyzxqlxAgMBAAGjggiUMIIIkDAO
BgNVHQ8BAf8EBAMCBaAwgYoGCCsGAQUFBwEBBH4wfDBCBggrBgEFBQcwAoY2aHR0
cDovL3NlY3VyZS5nbG9iYWxzaWduLmNvbS9jYWNlcnQvY2xvdWRzc2xzaGEyZzMu
Y3J0MDYGCCsGAQUFBzABhipodHRwOi8vb2NzcDIuZ2xvYmFsc2lnbi5jb20vY2xv
dWRzc2xzaGEyZzMwVgYDVR0gBE8wTTBBBgkrBgEEAaAyARQwNDAyBggrBgEFBQcC
ARYmaHR0cHM6Ly93d3cuZ2xvYmFsc2lnbi5jb20vcmVwb3NpdG9yeS8wCAYGZ4EM
AQICMAkGA1UdEwQCMAAwggYkBgNVHREEggYbMIIGF4IQci5zc2wuZmFzdGx5Lm5l
dIINKi5hZGR0aGlzLmNvbYIRKi5hZGR0aGlzZWRnZS5jb22CDCouYWR3ZXJ4LmNv
bYISKi5hbGl0dGxlY3JhZnQuY29tghEqLmFsaXR0bGVjcmFmdC5pdIITKi5hbGl0
dGxlbWFya2V0LmNvbYISKi5hbGl0dGxlbWFya2V0Lml0ghUqLmFsaXR0bGVtZXJj
ZXJpZS5jb22CDyouYmlnaGF0YWRzLmNvbYIOKi5idXp6ZmVlZC5jb22CECouY2F0
Y2hwb2ludC5jb22CCCouY25uLmlvghAqLmNvcmVkbmFjZG4uY29tghUqLmRvbGxh
cnNoYXZlY2x1Yi5jb22CDCouZG9tZmVlLmNvbYILKi5lYXRlci5jb22CECouZmFz
dGx5bGFicy5jb22CHCouZmlsZXMuc2F5bWVkaWEtY29udGVudC5jb22CDCouZmlu
bmNkbi5ub4IIKi5mdC5jb22CDyouZ2VvbmV0Lm9yZy5ueoIUKi5oaXBtdW5rc3Rh
Z2luZy5jb22CECouaG91c2Vsb2dpYy5jb22CCyouaXNzdXUuY29tggkqLmlzdS5w
dWKCESouamFja3RocmVhZHMuY29tgg0qLmxvc3RteS5uYW1lghIqLm1lZXR1cHN0
YXRpYy5jb22CDSoubmV0endlbHQuZGWCCSoubmZsLmNvbYIKKi5wYWdhci5tZYIP
Ki5waWNtb25rZXkuY29tggkqLnB5cGkuaW+CCioucHlwaS5vcmeCEioucHl0aG9u
aG9zdGVkLm9yZ4IPKi5yMjlzdGF0aWMuY29tgg4qLnJlYWxzZWxmLmNvbYIJKi5y
dGJmLmJlgg4qLnNibmF0aW9uLmNvbYILKi5zaGFrci5jb22CEiouc2hpZnRwcmV2
aWV3LmNvbYIQKi5zdGF0aWMucnRiZi5iZYIQKi5zdHJlYW1hYmxlLmNvbYIMKi5z
dXJmbHkuY29tgg4qLnRoZXZlcmdlLmNvbYIPKi50aHJpbGxpc3QuY29tggwqLnRp
c3N1dS5jb22CDSoudm94LWNkbi5jb22CCSoudm94LmNvbYIOKi52b3htZWRpYS5j
b22CCCoudy14LmNvghEqLndhdGNoLmFldG5kLmNvbYIMKi53ZXdvcmsuY29tggph
ZHdlcnguY29tghBhbGl0dGxlY3JhZnQuY29tgg9hbGl0dGxlY3JhZnQuaXSCEWFs
aXR0bGVtYXJrZXQuY29tghBhbGl0dGxlbWFya2V0Lml0ghNhbGl0dGxlbWVyY2Vy
aWUuY29tghZhbHBoYS5lbnRyZXByZW5ldXIuY29tghVhcGkuc2hpZnRjb21tZXJj
ZS5jb22CGmFzc2V0cy1zdGFnaW5nLnRoZW11c2UuY29tggxidXp6ZmVlZC5jb22C
FmRldi5hcGkuY2VyZWJyby5jbm4uaW+CFGRldi5oaXN0b3J5dmF1bHQuY29tghlk
ZXYubGlmZXRpbWVtb3ZpZWNsdWIuY29tggllYXRlci5jb22CEGVudHJlcHJlbmV1
ci5jb22CFGZhc3RseS5zaGlla2hkZXYuY29tggZmdC5jb22CFWgyLmhpcG11bmtz
dGFnaW5nLmNvbYIIaS5nc2UuaW+CC2xvc3RteS5uYW1lghhwcmV2aWV3LmVudHJl
cHJlbmV1ci5jb22CEHB5dGhvbmhvc3RlZC5vcmeCEXFhLnNhZmFyaWZsb3cuY29t
ggxyZWFsc2VsZi5jb22CB3J0YmYuYmWCD3NzbC5uZXR6d2VsdC5kZYIVc3RhdGlj
LnJlZmluZXJ5MjkuY29tghRzdGF0aWMud2l4c3RhdGljLmNvbYIOc3RyZWFtYWJs
ZS5jb22CCnN1cmZseS5jb22CDHRoZXZlcmdlLmNvbYILdm94LWNkbi5jb22CB3Zv
eC5jb22CEHd3dy5kZXhpZ25lci5jb22CFHd3dy5lbnRyZXByZW5ldXIuY29tgg53
d3cuam95ZW50LmNvbYIVd3d3LnFhLnNhZmFyaWZsb3cuY29tghB3d3cuc3RhY2tw
b3AuY29tMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAdBgNVHQ4EFgQU
8WPkxcyYMOyDfYryy2qnZTH95r8wHwYDVR0jBBgwFoAUqSuH4c4kRzsbv8+FNwJV
nQ2UWOYwggEFBgorBgEEAdZ5AgQCBIH2BIHzAPEAdwC72d+8H4pxtZOUI5eqkntH
OFeVCqtS6BqQlmQ2jh7RhQAAAWWmG1BLAAAEAwBIMEYCIQDYsK9L+/NIftYurcIP
63CEJPQi0FzGbEeiw0bFGcp13gIhAL9Ffe3MLilPNtQIByKk1qlvpAn4tmvJvmtQ
1aBfTaweAHYAb1N2rDHwMRnYmQCkURX/dxUcEdkCwQApBo2yCJo32RMAAAFlphtM
UwAABAMARzBFAiEApZw1GW/9wrp6nyZJcYYnozPSoSmqzx6fEbRT6AV3u+ICIG+p
0WA9zu3C1RAHIXPzlYsxGX6iN2hMfVAvrJWvpv3ZMA0GCSqGSIb3DQEBCwUAA4IB
AQBZ1PYcq73IWZHsgeJhlfFQ6LJazsFqr3YCts2mu6EANka4y3K6tHJMz1vOkXmq
/7oOS4esMqK0g2ETsEGUjQlsjwhsoXNoj4rWFrIx0LT3xR1smU10xjdHAfcL3AaU
MQ62ODYP5JfECD8Y8cYqdZ31WmBlky+hnlgPDONYs/FUD+ylfmlYvvReHfmNEAR/
QwZU7nrId7PxXCUFpWuhnEyJNba7vPvViXEIrVw1sAo3Doe4VKi8BQhZ+yoorPaA
RmYDKHs9uyz5c1Myh9XHCKr2VLVVAJT71tD7vSv4QqsBkORxR1GsC3uMCMQNZ4GO
NlGlv74knHhweyvLnWTRijjG
-----END CERTIFICATE-----
subject=/C=US/ST=California/L=San Francisco/O=Fastly, Inc/CN=r.ssl.fastly.net
issuer=/C=BE/O=GlobalSign nv-sa/CN=GlobalSign CloudSSL CA - SHA256 - G3
---
No client certificate CA names sent
Peer signing digest: SHA512
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 4837 bytes and written 317 bytes
Verification: OK
---
New, TLSv1.2, Cipher is ECDHE-RSA-AES128-GCM-SHA256
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES128-GCM-SHA256
    Session-ID: 3A4C52F5A00CE6D56712EFABBA6207C2A15B45C6ED8B2AF62D59D7CA69514D12
    Session-ID-ctx: 
    Master-Key: CCA52BFE8F7431EEF7663B3AD1429766DE6F80BBECD3AEC77E1F70F5CF0C56AB9DFCF29B43C0C0E223FC3DC35F0CDF55
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 7200 (seconds)
    TLS session ticket:
    0000 - cb 46 9a 90 b0 8c f4 ec-b5 a0 ea a0 bb 39 54 16   .F...........9T.
    0010 - be d7 85 1d a9 b3 87 d3-80 52 f3 74 45 2c 3e 63   .........R.tE,>c
    0020 - a1 8c b2 5c 56 4a 88 cf-d3 0e 8b 37 45 6c a4 d1   ...\VJ.....7El..
    0030 - 5d 09 f1 fe 09 46 6d 7a-62 63 92 3d 56 15 23 54   ]....Fmzbc.=V.#T
    0040 - db 00 6f ee f7 d2 8b 60-51 b6 b8 c3 a3 7f f9 87   ..o....`Q.......
    0050 - a2 3a 19 90 02 0c 2c 97-e6 5b 3d fc 46 a1 35 ec   .:....,..[=.F.5.
    0060 - bf f9 b4 d9 27 9d c5 50-79 13 3b c4 d6 77 12 40   ....'..Py.;..w.@
    0070 - f1 95 a8 fd 29 ee 3d ea-99 87 1d 42 21 99 65 d0   ....).=....B!.e.
    0080 - 24 4e d2 24 2a 44 87 36-b2 90 36 9d f5 0f a8 26   $N.$*D.6..6....&
    0090 - 17 62 1c 67 42 72 d0 46-c0 91 2f 8d 20 b8 ac 94   .b.gBr.F../. ...

    Start Time: 1538138433
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: yes
---
DONE
vstinner commented 6 years ago

Last year I reported a random TLS error on bugs.python.org, but it's likely unrelated since it's a different domain and a different service: https://github.com/python/psf-infra-meta/issues/4

ewdurbin commented 6 years ago

Thank you for your complete and thorough report @vstinner. Nothing in the provided diagnostics stand out unfortunately. I'll forward it on to our CDN provider to see if there are any known issues with the Point of Presence you were connecting to for files.pythonhosted.org.

Issues like this tend to be due to CDN reachability stemming from IP Multicast issues (CDN provider or ISP related), general IP connectivity issues, as well as ISP or Corporate firewalls/proxies, so it ultimately leaves us with little recourse 😞.

We are unable to see these connection resets in the metrics available from the CDN, so they are hard to track over time. Do you have any timeframe for when this issue began (and ended if it has resolved)?

vstinner commented 6 years ago

I would say that the issue occurred today between 11:40 and 11:55 UTC.

vstinner commented 6 years ago

I removed ~/.cache/pip/ and ran "tox -e py27" again: all downloads complete with success. I repeated the same test: new success. Well, networking black box... Feel free to close the issue if you prefer :-)

di commented 6 years ago

Going to close this as it seems to have been a transient issue with our CDN or the network, please feel free to reopen if it reoccurs!

kreopt commented 5 years ago

Hi! I had encountered the same bug that lasts for about a week. Any info I can provide to solve this issue?

ewdurbin commented 5 years ago

Hi @kreopt can you paste the logs from pip for us to review?

kreopt commented 5 years ago
pip3.7 -v install --user aiodine 
Created temporary directory: /tmp/pip-ephem-wheel-cache-yj1c1oul
Created temporary directory: /tmp/pip-req-tracker-x8zoe5yi
Created requirements tracker '/tmp/pip-req-tracker-x8zoe5yi'
Created temporary directory: /tmp/pip-install-3wn99dyb
Collecting aiodine
  1 location(s) to search for versions of aiodine:
  * https://pypi.org/simple/aiodine/
  Getting page https://pypi.org/simple/aiodine/
  Looking up "https://pypi.org/simple/aiodine/" in the cache
  Current age based on date: 249278
  Freshness lifetime from max-age: 600
  Freshness lifetime from request max-age: 600
  Starting new HTTPS connection (1): pypi.org:443
  https://pypi.org:443 "GET /simple/aiodine/ HTTP/1.1" 304 0
  Analyzing links from page https://pypi.org/simple/aiodine/
    Found link https://files.pythonhosted.org/packages/d0/c7/e74842f61315de6f3e988ac669887be386fbd0eb7083ee47831eb9f03456/aiodine-0.1.0-py3-none-any.whl#sha256=feeb50df4d8a5bcce8571509c9620439d8d2792befd287959ab34492e945bf6d (from https://pypi.org/simple/aiodine/), version: 0.1.0
    Found link https://files.pythonhosted.org/packages/1a/2a/55ca3a1ff2a82b63cec7cf5b70f2dab2fd11cb477d878a08ed6fffd1fd37/aiodine-0.1.0.tar.gz#sha256=1b7811dfb0ee893bbf4b4f0f112ceff02224a6530c53664f31fec98af25181a4 (from https://pypi.org/simple/aiodine/), version: 0.1.0
    Found link https://files.pythonhosted.org/packages/bb/aa/d547738f401eccd480fcbf6febfa868881a550a3f6d8625aaace8a026b77/aiodine-0.1.1-py3-none-any.whl#sha256=d2ab6840fe00666b797a1398ff5d17276d857ed77487df86daee1d8002fbcb0a (from https://pypi.org/simple/aiodine/), version: 0.1.1
    Found link https://files.pythonhosted.org/packages/11/f7/8a3d22ea3ba4643685c58d1f6bfa534ee55aca45c48dbfbac6b2f59b2981/aiodine-0.1.1.tar.gz#sha256=9b896effa60363c59bcb4ffb6e29ce69a5af279e6216fca7713c7fa2124bd33c (from https://pypi.org/simple/aiodine/), version: 0.1.1
    Found link https://files.pythonhosted.org/packages/8c/61/ab50f077e3d4f45d566c25078218940b64b7f515874759e7f96db7bf4881/aiodine-0.1.2-py3-none-any.whl#sha256=9b9cda5598dbb9ad476010460d751beb548ce63e72cde626d02b2cca585b54d1 (from https://pypi.org/simple/aiodine/), version: 0.1.2
    Found link https://files.pythonhosted.org/packages/8e/81/8480bf65b4fab27a9f8797bc15bbab63a7b8c41b6ecee0d266c59e936908/aiodine-0.1.2.tar.gz#sha256=5bf7cfa502d26085220c697ce9366aa9ea6d9960368f33a53b5bd4e1e8058553 (from https://pypi.org/simple/aiodine/), version: 0.1.2
    Found link https://files.pythonhosted.org/packages/09/65/14defe01c7680b114bf5cbe7dafe85d55dade2c3bbc03520254719264a14/aiodine-0.1.3-py3-none-any.whl#sha256=dda1d99bd34438cdef7a958f413fca795b1e26f159f39ce3b16c07088b787cc7 (from https://pypi.org/simple/aiodine/), version: 0.1.3
    Found link https://files.pythonhosted.org/packages/97/2d/2a2cf977b6a2fed730a6254086f6c153b8d0cbff5915aa43079bdc1a3674/aiodine-0.1.3.tar.gz#sha256=1b4ceff63341536eaaa933626866e7a856e7a465fc3f415b9cd62b1601e2b260 (from https://pypi.org/simple/aiodine/), version: 0.1.3
    Found link https://files.pythonhosted.org/packages/e6/63/35fdaad653705a2511b1c84a3b286683b851c68f1dd04bbd26bb0763c6a4/aiodine-0.2.0-py3-none-any.whl#sha256=a5d8aeb115b59ef9f373b23ec82e269e1bec847890d9a34962b2bf92cb52a852 (from https://pypi.org/simple/aiodine/), version: 0.2.0
    Found link https://files.pythonhosted.org/packages/17/46/03662ca3493e77cf5ad15ef329d8731af647780316bd5176d7cb44115ef4/aiodine-0.2.0.tar.gz#sha256=7c8156241ccfb1826e8c7fa34e03345d7b7e853368a944fd9b094017c44df12f (from https://pypi.org/simple/aiodine/), version: 0.2.0
    Found link https://files.pythonhosted.org/packages/ac/87/c87af51ff17930d3552aba5fa9d86005657127c8feb31854ed05253e08bb/aiodine-1.0.0-py3-none-any.whl#sha256=4d3ef6d7f7fc54c6930a750c27ed3316b3ba112564c4414a4100961a36d76f96 (from https://pypi.org/simple/aiodine/) (requires-python:>=3.6), version: 1.0.0
    Found link https://files.pythonhosted.org/packages/4e/e3/e9b58c0241598a1ea3f1a345301a4c10237baf15df36a80c111d43526b88/aiodine-1.0.0.tar.gz#sha256=3f019e243cb410307b820bf404bcaf477409ed1c1de80fc6704f8de4867154a7 (from https://pypi.org/simple/aiodine/) (requires-python:>=3.6), version: 1.0.0
    Found link https://files.pythonhosted.org/packages/5c/9b/b12fa9f1bf98faee90ef25f552a633be8baaff5a8e0335af27f43c8fe807/aiodine-1.0.1-py3-none-any.whl#sha256=a4e034f8d685d6afb60aead576364f75c9d9a561eedd4aeea07f1437304dbd67 (from https://pypi.org/simple/aiodine/) (requires-python:>=3.6), version: 1.0.1
    Found link https://files.pythonhosted.org/packages/30/da/640031b2f39e3bdac50857878d1cf348a2e95d87da160c989abdeeeb52da/aiodine-1.0.1.tar.gz#sha256=084f706e0295717bd51124f34415f39763cb5feda2759b85ea49f3ecd7f12093 (from https://pypi.org/simple/aiodine/) (requires-python:>=3.6), version: 1.0.1
    Found link https://files.pythonhosted.org/packages/60/6e/3bf9d11dea0401265447400d7d246f2d5526eceaf8644bd4788b569dc45f/aiodine-1.1.0-py3-none-any.whl#sha256=433c71d9265cdb93535465c3fde954ed05ca94f9167d565251fc55ee6fd14263 (from https://pypi.org/simple/aiodine/) (requires-python:>=3.6), version: 1.1.0
    Found link https://files.pythonhosted.org/packages/01/36/60280d17fad2cf74093139382e47c398a6b3b767a0543a1f47dffabc1be8/aiodine-1.1.0.tar.gz#sha256=7af4fc6e87f86a1f8786efe99d2d199e81f24ede9f230608cb5d5bdfb9e7fc41 (from https://pypi.org/simple/aiodine/) (requires-python:>=3.6), version: 1.1.0
    Found link https://files.pythonhosted.org/packages/1a/67/28385e8d8e56169447ffbf08f050899b0e7678842605fac22f30dde07bda/aiodine-1.1.1-py3-none-any.whl#sha256=2fe2b775a0f1e082caeba43fd9abf353f74f557816de22d6f29fcbcc3adc3e3e (from https://pypi.org/simple/aiodine/) (requires-python:>=3.6), version: 1.1.1
    Found link https://files.pythonhosted.org/packages/2c/63/63bf56c841c853e6e4339e4b5d3027b4d9345cb4d566190027f679a807c6/aiodine-1.1.1.tar.gz#sha256=6913e70738221e09d43c5c188c32fcc73009522fe4edca117d1b1883f96dfc19 (from https://pypi.org/simple/aiodine/) (requires-python:>=3.6), version: 1.1.1
    Found link https://files.pythonhosted.org/packages/2b/51/b45c60e814317395e4929d873faf6ef756f1e3ecfd72ee3b3b036018dbda/aiodine-1.2.0-py3-none-any.whl#sha256=3e78004dd8d202fb46a8b9f72a9c6cd44b8d568a9cb28ff6e94e2e0617fe0dc0 (from https://pypi.org/simple/aiodine/) (requires-python:>=3.6), version: 1.2.0
    Found link https://files.pythonhosted.org/packages/ca/a6/daec59ec1b3de69b9bff0e04c2351cd1473123720f043279a425fb351f40/aiodine-1.2.0.tar.gz#sha256=05f69fa4e376da4b1273932644afe35fd01a0f476f110808b1a265a20dcd111d (from https://pypi.org/simple/aiodine/) (requires-python:>=3.6), version: 1.2.0
    Found link https://files.pythonhosted.org/packages/90/04/4d43f74c0171df1fb43940371ace8c1e8a3295eeb02e90e717f6e94340a5/aiodine-1.2.1-py3-none-any.whl#sha256=fe1158690f7909c9b82704af3802da2b776cf08e1a38051105fb1cecfc6c347b (from https://pypi.org/simple/aiodine/) (requires-python:>=3.6), version: 1.2.1
    Found link https://files.pythonhosted.org/packages/8f/22/2e98d7eb9ff126e6fbd52e2242cd0cf539c29e83d41400f0446189b03861/aiodine-1.2.1.tar.gz#sha256=017fa624eed80cc82c7bd161087691ebe2c41af8e3b6a24b562e6abcb376e75f (from https://pypi.org/simple/aiodine/) (requires-python:>=3.6), version: 1.2.1
    Found link https://files.pythonhosted.org/packages/46/fa/c014fda08e7aa9ac24b5975e3872d24983cc22722653bff9b6ce10a34fea/aiodine-1.2.2-py3-none-any.whl#sha256=5da565caf649dd30c0b13060f63a4192efbb42838ce3544347548b297d68aa41 (from https://pypi.org/simple/aiodine/) (requires-python:>=3.6), version: 1.2.2
    Found link https://files.pythonhosted.org/packages/bd/8d/af90d7253ffa2e8c63324dbc8a53753f42a0804b63cbad67f741dc35d395/aiodine-1.2.2.tar.gz#sha256=595826b921adc4d85cdb349097e7f529bd9ebd506e80a8ab5af91920a6159f11 (from https://pypi.org/simple/aiodine/) (requires-python:>=3.6), version: 1.2.2
    Found link https://files.pythonhosted.org/packages/26/04/be91de4330c824ab23f0dbf67bcbd6068cbfea247da324beeefe3324b418/aiodine-1.2.3-py3-none-any.whl#sha256=ddf9377dfc8158302d2306b41d651ebfa4dabc4e390052579c9d1d5a4c74e3ea (from https://pypi.org/simple/aiodine/) (requires-python:>=3.6), version: 1.2.3
    Found link https://files.pythonhosted.org/packages/d1/d6/040af9571f2a0dd189b7c14b68696f023122b8bb2fd9731b1e8db409d3aa/aiodine-1.2.3.tar.gz#sha256=5aa0e6c63f1b7279c02d4619c2e92a72ad3fa8a337d5bacb53f9fc584eca02a1 (from https://pypi.org/simple/aiodine/) (requires-python:>=3.6), version: 1.2.3
    Found link https://files.pythonhosted.org/packages/b5/e6/c468f9c2d0d9079bb2076c1488b7d1117e0ddcde46574a2820719094f9b5/aiodine-1.2.4-py3-none-any.whl#sha256=9c1ff5d56358cf7b33409fa9d752b4589e508ac19bb3be72876a840d41835293 (from https://pypi.org/simple/aiodine/) (requires-python:>=3.6), version: 1.2.4
    Found link https://files.pythonhosted.org/packages/3a/1c/c656b56defeb6624d19cfba99cb38ec959a2329e94e409dd4d584f68176e/aiodine-1.2.4.tar.gz#sha256=6e13c7d5003389c3f16afb69e88e54c04d6482f69a1ab36296afe89789936ef3 (from https://pypi.org/simple/aiodine/) (requires-python:>=3.6), version: 1.2.4
    Found link https://files.pythonhosted.org/packages/9d/89/c440d32517d131bbe00295e220b0bf845f07625073e4fb3f691ad5499bad/aiodine-1.2.5-py3-none-any.whl#sha256=5c18dca9e5398e8dd0f9cbc728c00207de71e2d132c33005e38454f33fb5a82f (from https://pypi.org/simple/aiodine/) (requires-python:>=3.6), version: 1.2.5
    Found link https://files.pythonhosted.org/packages/9f/3e/9f9a1fc9dec825ecf8449c1acb4de098aaa9a7bc3a0ece805925332a3a2b/aiodine-1.2.5.tar.gz#sha256=7f58bdec4a33918c1f610f4491694cc6b547075f51c3a303077b722f777ca79d (from https://pypi.org/simple/aiodine/) (requires-python:>=3.6), version: 1.2.5
    Found link https://files.pythonhosted.org/packages/37/6c/c9342ab36ea5c5ba151db3715fa7135c203d2e0fbb8bcd2b4e74e680f36f/aiodine-1.2.6-py3-none-any.whl#sha256=eb692b622a0c6728b6325f488f758ff18e7274a651898934d7b2925980a23d58 (from https://pypi.org/simple/aiodine/) (requires-python:>=3.6), version: 1.2.6
    Found link https://files.pythonhosted.org/packages/e5/d6/75bba785806161c517d667c88d66ee9789c1a737b6e1187e6342d12d5bbf/aiodine-1.2.6.tar.gz#sha256=dbc832aa68ca8e48d4156560358c7d98139399e52a8c5af6d45b8aa768722592 (from https://pypi.org/simple/aiodine/) (requires-python:>=3.6), version: 1.2.6
    Found link https://files.pythonhosted.org/packages/42/d6/e3f2ec78538aeb4b2b0835eabd116910469099735c4eb1ff751f022d46a1/aiodine-1.2.7-py3-none-any.whl#sha256=fe407da4146bc907b9ace2817f17fb52406cebca8806894fef8523306117a083 (from https://pypi.org/simple/aiodine/) (requires-python:>=3.6), version: 1.2.7
    Found link https://files.pythonhosted.org/packages/31/16/2c07be38a6fb8a7899291bfd01161d4a4111914e8280f2dfa24c9f82a28e/aiodine-1.2.7.tar.gz#sha256=bbea3dd6c1bfa3c2ece07fe38102b636cdcbc58d678e2e848205cc6d0c4f9639 (from https://pypi.org/simple/aiodine/) (requires-python:>=3.6), version: 1.2.7
  Using version 1.2.7 (newest of versions: 0.1.0, 0.1.1, 0.1.2, 0.1.3, 0.2.0, 1.0.0, 1.0.1, 1.1.0, 1.1.1, 1.2.0, 1.2.1, 1.2.2, 1.2.3, 1.2.4, 1.2.5, 1.2.6, 1.2.7)
  Created temporary directory: /tmp/pip-unpack-3y8tq5qq
  Looking up "https://files.pythonhosted.org/packages/42/d6/e3f2ec78538aeb4b2b0835eabd116910469099735c4eb1ff751f022d46a1/aiodine-1.2.7-py3-none-any.whl" in the cache
  No cache entry available
  Starting new HTTPS connection (1): files.pythonhosted.org:443
  Incremented Retry for (url='/packages/42/d6/e3f2ec78538aeb4b2b0835eabd116910469099735c4eb1ff751f022d46a1/aiodine-1.2.7-py3-none-any.whl'): Retry(total=4, connect=None, read=None, redirect=None, status=None)
  Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError("bad handshake: SysCallError(104, 'ECONNRESET')"))': /packages/42/d6/e3f2ec78538aeb4b2b0835eabd116910469099735c4eb1ff751f022d46a1/aiodine-1.2.7-py3-none-any.whl
  Starting new HTTPS connection (2): files.pythonhosted.org:443
  Incremented Retry for (url='/packages/42/d6/e3f2ec78538aeb4b2b0835eabd116910469099735c4eb1ff751f022d46a1/aiodine-1.2.7-py3-none-any.whl'): Retry(total=3, connect=None, read=None, redirect=None, status=None)
  Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError("bad handshake: SysCallError(104, 'ECONNRESET')"))': /packages/42/d6/e3f2ec78538aeb4b2b0835eabd116910469099735c4eb1ff751f022d46a1/aiodine-1.2.7-py3-none-any.whl
  Starting new HTTPS connection (3): files.pythonhosted.org:443
  Incremented Retry for (url='/packages/42/d6/e3f2ec78538aeb4b2b0835eabd116910469099735c4eb1ff751f022d46a1/aiodine-1.2.7-py3-none-any.whl'): Retry(total=2, connect=None, read=None, redirect=None, status=None)
  Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError("bad handshake: SysCallError(104, 'ECONNRESET')"))': /packages/42/d6/e3f2ec78538aeb4b2b0835eabd116910469099735c4eb1ff751f022d46a1/aiodine-1.2.7-py3-none-any.whl
  Starting new HTTPS connection (4): files.pythonhosted.org:443
  Incremented Retry for (url='/packages/42/d6/e3f2ec78538aeb4b2b0835eabd116910469099735c4eb1ff751f022d46a1/aiodine-1.2.7-py3-none-any.whl'): Retry(total=1, connect=None, read=None, redirect=None, status=None)
  Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError("bad handshake: SysCallError(104, 'ECONNRESET')"))': /packages/42/d6/e3f2ec78538aeb4b2b0835eabd116910469099735c4eb1ff751f022d46a1/aiodine-1.2.7-py3-none-any.whl
  Starting new HTTPS connection (5): files.pythonhosted.org:443
  Incremented Retry for (url='/packages/42/d6/e3f2ec78538aeb4b2b0835eabd116910469099735c4eb1ff751f022d46a1/aiodine-1.2.7-py3-none-any.whl'): Retry(total=0, connect=None, read=None, redirect=None, status=None)
  Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError("bad handshake: SysCallError(104, 'ECONNRESET')"))': /packages/42/d6/e3f2ec78538aeb4b2b0835eabd116910469099735c4eb1ff751f022d46a1/aiodine-1.2.7-py3-none-any.whl
  Starting new HTTPS connection (6): files.pythonhosted.org:443
Could not install packages due to an EnvironmentError.
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py", line 444, in wrap_socket
    cnx.do_handshake()
  File "/usr/lib/python3.7/site-packages/OpenSSL/SSL.py", line 1915, in do_handshake
    self._raise_ssl_error(self._ssl, result)
  File "/usr/lib/python3.7/site-packages/OpenSSL/SSL.py", line 1639, in _raise_ssl_error
    raise SysCallError(errno, errorcode.get(errno))
OpenSSL.SSL.SysCallError: (104, 'ECONNRESET')

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/pip/_vendor/urllib3/connectionpool.py", line 600, in urlopen
    chunked=chunked)
  File "/usr/local/lib/python3.7/site-packages/pip/_vendor/urllib3/connectionpool.py", line 343, in _make_request
    self._validate_conn(conn)
  File "/usr/local/lib/python3.7/site-packages/pip/_vendor/urllib3/connectionpool.py", line 849, in _validate_conn
    conn.connect()
  File "/usr/local/lib/python3.7/site-packages/pip/_vendor/urllib3/connection.py", line 356, in connect
    ssl_context=context)
  File "/usr/local/lib/python3.7/site-packages/pip/_vendor/urllib3/util/ssl_.py", line 359, in ssl_wrap_socket
    return context.wrap_socket(sock, server_hostname=server_hostname)
  File "/usr/local/lib/python3.7/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py", line 450, in wrap_socket
    raise ssl.SSLError('bad handshake: %r' % e)
ssl.SSLError: ("bad handshake: SysCallError(104, 'ECONNRESET')",)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/pip/_vendor/requests/adapters.py", line 445, in send
    timeout=timeout
  File "/usr/local/lib/python3.7/site-packages/pip/_vendor/urllib3/connectionpool.py", line 667, in urlopen
    **response_kw)
  File "/usr/local/lib/python3.7/site-packages/pip/_vendor/urllib3/connectionpool.py", line 667, in urlopen
    **response_kw)
  File "/usr/local/lib/python3.7/site-packages/pip/_vendor/urllib3/connectionpool.py", line 667, in urlopen
    **response_kw)
  [Previous line repeated 2 more times]
  File "/usr/local/lib/python3.7/site-packages/pip/_vendor/urllib3/connectionpool.py", line 638, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "/usr/local/lib/python3.7/site-packages/pip/_vendor/urllib3/util/retry.py", line 398, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
pip._vendor.urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Max retries exceeded with url: /packages/42/d6/e3f2ec78538aeb4b2b0835eabd116910469099735c4eb1ff751f022d46a1/aiodine-1.2.7-py3-none-any.whl (Caused by SSLError(SSLError("bad handshake: SysCallError(104, 'ECONNRESET')")))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/pip/_internal/commands/install.py", line 299, in run
    resolver.resolve(requirement_set)
  File "/usr/local/lib/python3.7/site-packages/pip/_internal/resolve.py", line 102, in resolve
    self._resolve_one(requirement_set, req)
  File "/usr/local/lib/python3.7/site-packages/pip/_internal/resolve.py", line 256, in _resolve_one
    abstract_dist = self._get_abstract_dist_for(req_to_install)
  File "/usr/local/lib/python3.7/site-packages/pip/_internal/resolve.py", line 209, in _get_abstract_dist_for
    self.require_hashes
  File "/usr/local/lib/python3.7/site-packages/pip/_internal/operations/prepare.py", line 283, in prepare_linked_requirement
    progress_bar=self.progress_bar
  File "/usr/local/lib/python3.7/site-packages/pip/_internal/download.py", line 836, in unpack_url
    progress_bar=progress_bar
  File "/usr/local/lib/python3.7/site-packages/pip/_internal/download.py", line 673, in unpack_http_url
    progress_bar)
  File "/usr/local/lib/python3.7/site-packages/pip/_internal/download.py", line 868, in _download_http_url
    stream=True,
  File "/usr/local/lib/python3.7/site-packages/pip/_vendor/requests/sessions.py", line 525, in get
    return self.request('GET', url, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/pip/_internal/download.py", line 396, in request
    return super(PipSession, self).request(method, url, *args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/pip/_vendor/requests/sessions.py", line 512, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python3.7/site-packages/pip/_vendor/requests/sessions.py", line 622, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/pip/_vendor/cachecontrol/adapter.py", line 53, in send
    resp = super(CacheControlAdapter, self).send(request, **kw)
  File "/usr/local/lib/python3.7/site-packages/pip/_vendor/requests/adapters.py", line 511, in send
    raise SSLError(e, request=request)
pip._vendor.requests.exceptions.SSLError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Max retries exceeded with url: /packages/42/d6/e3f2ec78538aeb4b2b0835eabd116910469099735c4eb1ff751f022d46a1/aiodine-1.2.7-py3-none-any.whl (Caused by SSLError(SSLError("bad handshake: SysCallError(104, 'ECONNRESET')")))
Cleaning up...
Removed build tracker '/tmp/pip-req-tracker-x8zoe5yi'
1 location(s) to search for versions of pip:
* https://pypi.org/simple/pip/
Getting page https://pypi.org/simple/pip/
Looking up "https://pypi.org/simple/pip/" in the cache
Current age based on date: 605464
Freshness lifetime from max-age: 600
Freshness lifetime from request max-age: 600
Starting new HTTPS connection (1): pypi.org:443
https://pypi.org:443 "GET /simple/pip/ HTTP/1.1" 304 0
Analyzing links from page https://pypi.org/simple/pip/
kreopt commented 5 years ago

Looks like it was DNS problem. Sorry for bothering:)

rashminair90 commented 5 years ago

I am getting below error:

"changed": true, 
    "cmd": "/usr/bin/pip2 install pymongo", 
    "delta": "0:00:08.593124", 
    "end": "2019-09-25 15:59:25.192909", 
    "invocation": {
        "module_args": {
            "_raw_params": "/usr/bin/pip2 install pymongo", 
            "_uses_shell": true, 
            "argv": null, 
            "chdir": null, 
            "creates": null, 
            "executable": null, 
            "removes": null, 
            "stdin": null, 
            "stdin_add_newline": true, 
            "strip_empty_ends": true, 
            "warn": true
        }
    }, 
    "msg": "non-zero return code", 
    "rc": 1, 
    "start": "2019-09-25 15:59:16.599785", 
    "stderr": "DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support\n  WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f9c25214e50>: Failed to establish a new connection: [Errno -2] Name or service not known',)': /simple/pymongo/\n  WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f9c25214ad0>: Failed to establish a new connection: [Errno -2] Name or service not known',)': /simple/pymongo/\n  WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f9c25214fd0>: Failed to establish a new connection: [Errno -2] Name or service not known',)': /simple/pymongo/\n  WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f9c25214590>: Failed to establish a new connection: [Errno -2] Name or service not known',)': /simple/pymongo/\n  WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f9c25214090>: Failed to establish a new connection: [Errno -2] Name or service not known',)': /simple/pymongo/\n  ERROR: Could not find a version that satisfies the requirement pymongo (from versions: none)\nERROR: No matching distribution found for pymongo", 
    "stderr_lines": [
        "DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support", 
        "  WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f9c25214e50>: Failed to establish a new connection: [Errno -2] Name or service not known',)': /simple/pymongo/", 
        "  WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f9c25214ad0>: Failed to establish a new connection: [Errno -2] Name or service not known',)': /simple/pymongo/", 
        "  WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f9c25214fd0>: Failed to establish a new connection: [Errno -2] Name or service not known',)': /simple/pymongo/", 
        "  WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f9c25214590>: Failed to establish a new connection: [Errno -2] Name or service not known',)': /simple/pymongo/", 
        "  WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f9c25214090>: Failed to establish a new connection: [Errno -2] Name or service not known',)': /simple/pymongo/", 
        "  ERROR: Could not find a version that satisfies the requirement pymongo (from versions: none)", 
        "ERROR: No matching distribution found for pymongo"
talregev commented 3 years ago

I have the same problem for other packages in pip.
When I ping to pypi.org it direct me to ipv6 site ip that is nice but not working:

Pinging pypi.org [2a04:4e42:200::223] with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.

My workaround was that my windows 10 will prefer ipv4 over ipv6 https://kb.firedaemon.com/support/solutions/articles/4000160803-prioritising-ipv4-over-ipv6-on-windows-10 Show current ipv6 prefer policy:
netsh interface ipv6 show prefixpolicies Prefer ipv4 over ipv6 in windows 10 netsh interface ipv6 set prefixpolicy ::ffff:0:0/96 46 4

Please fix your ipv6 server that I can freely download packages from there. Please open the issue, it not fix yet.

ewdurbin commented 3 years ago

Our CDN provider experienced a global incident this morning @talregev. https://status.python.org/incidents/b3mj9mhvnbkt

What time did the errors you're reporting occur?

talregev commented 3 years ago

It happen for me today, I cannot verify when it start because today I install new packages. I don't remember when I install the last one before.

iamjavlon commented 3 years ago

Experiencing similar problem here. Trying to install python-dotenv using pip and here is the result:

pip install python-dotenv Collecting python-dotenv WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x0000029AE037BAF0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')': /packages/af/85/7433188f5811856dabe0c7bccc832a23c2fd49b48fc57373d9c10747a1ea/python_dotenv-0.19.1-py2.py3-none-any.whl WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x0000029AE02F1F70>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')': /packages/af/85/7433188f5811856dabe0c7bccc832a23c2fd49b48fc57373d9c10747a1ea/python_dotenv-0.19.1-py2.py3-none-any.whl WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x0000029AE03A9760>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')': /packages/af/85/7433188f5811856dabe0c7bccc832a23c2fd49b48fc57373d9c10747a1ea/python_dotenv-0.19.1-py2.py3-none-any.whl WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x0000029AE03A9970>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')': /packages/af/85/7433188f5811856dabe0c7bccc832a23c2fd49b48fc57373d9c10747a1ea/python_dotenv-0.19.1-py2.py3-none-any.whl WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x0000029AE03A9B80>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')': /packages/af/85/7433188f5811856dabe0c7bccc832a23c2fd49b48fc57373d9c10747a1ea/python_dotenv-0.19.1-py2.py3-none-any.whl ERROR: Could not install packages due to an OSError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Max retries exceeded with url: /packages/af/85/7433188f5811856dabe0c7bccc832a23c2fd49b48fc57373d9c10747a1ea/python_dotenv-0.19.1-py2.py3-none-any.whl (Caused by NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x0000029AE03A9D90>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

@ewdurbin

ewdurbin commented 3 years ago

@iamjavlon please open a new Network Access Issue at https://github.com/pypa/pypi-support/issues/new?assignees=&labels=network&template=access-issues.yml, ensuring that all requested information is provided.

talregev commented 3 years ago

Maybe it ipv6 problem. Can you do ping to: ping pypi.org And post the result here? if it ipv6, for me sometimes it doing some problem.

image