我不确定这是否是问这个问题的正确地方,但它就在这里。
我居住的国家的政府已经封锁了wikipedia.org。出于好奇,我四处寻找可能确定使用了哪些方法等。将我的默认 DNS 解析器更改为Cloudflare (1.1.1.1) 后,我现在可以使用 CLI 浏览器lynx访问地址https://wikipedia.org . 但是,我无法从我的浏览器 (Safari) 或 cURL 访问该站点。命令的输出给出:curl https://wikipedia.org/ -vv
* Trying 103.102.166.224...
* TCP_NODELAY set
* Connected to wikipedia.org (103.102.166.224) port 443 (#0)
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
* CAfile: /anaconda3/ssl/cacert.pem
CApath: none
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to wikipedia.org:443
* Closing connection 0
curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to wikipedia.org:443
问题:
- 从技术角度来看,为什么我无法访问https://wikipedia.org?
- 是什么让lynx可以访问该站点而 cURL 不能?我认为这与 CA 证书和 ssl 有关,但我不明白政府如何修改我设备上的证书。
编辑:为了澄清起见,我对如何绕过这个块或任何东西的评论不感兴趣;显然有很多方法,但它们与这个问题无关。
EDIT1:版本
卷曲:
curl 7.58.0 (x86_64-apple-darwin13.4.0) libcurl/7.58.0 OpenSSL/1.0.2o zlib/1.2.11
Release-Date: 2018-01-24
Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP UnixSockets HTTPS-proxy
猞猁:
Lynx Version 2.8.8rel.2 (09 Mar 2014)
libwww-FM 2.14, SSL-MM 1.4.1, OpenSSL 1.0.2o, ncurses 5.7.20081102
Built on darwin17.0.0 Sep 18 2017 16:36:30