付费 30 红包送给第一位帮助解决此问题的 V 友,以聊表心意。
物理机 Windows 10
C:\Windows\system32>curl -V
curl 7.55.1 (Windows) libcurl/7.55.1 WinSSL
Release-Date: [unreleased]
Protocols: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp
Features: AsynchDNS IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL
虚拟机 Linux Mint 19.3 ,等价 Ubuntu 18.04 LTS
# mint @ mint-virtual-machine in ~ [11:38:30]
$ curl -V
curl 7.58.0 (x86_64-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3
Release-Date: 2018-01-24
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL
在虚拟机中,前几天下午用 pycharm 的时候突然弹出个公司的证书,不知道为啥,就正常写代码中。
后面尝试发现所有 https 站点连接都有问题,比如下图中的某度,
按照 curl 问题指引 https://curl.se/docs/sslcerts.html ,下载 cacert.pem ,运行依然没有效果
同时物理机上面的 windows curl 也不好使了
忽略掉证书是可以的,比如curl -v https://www.baidu.com --insecure
但是这并不是解决方案啊,另外其他使用 HTTPS 的工具好像也连不上 HTTPS 站点了,像是系统问题?但是实在想不明白物理机和虚拟机同时不能请求 HTTPS 的原因是啥。
1
dzdh 2021-11-01 12:50:32 +08:00
机器时间对不对
|
2
zu1k 2021-11-01 12:54:01 +08:00 via Android
你这个证书与我获取到的不一样,证书签发者有公司名?如果有,是被中间人了,可能你们公司要搞监控了
|
3
hanssx OP |
4
hanssx OP @zu1k 有公司名,就是我们公司的名字,我给打码了,我是在虚拟机里面用 Pycharm 的时候,在 Pycharm 中弹出的这个公司证书,但是为啥物理机 Windows 的 curl 也坏了,而且和虚拟机的状况是一样的呢?
|
5
dzdh 2021-11-01 12:56:37 +08:00
我是搜的 [吊销功能无法检查证书是否吊销] 可能是由于时间问题导致的。
另外你浏览器能正常访问 https 吗,公司里除了你别人有问题吗,如果浏览器访问提示证书有问题的话把有问题的证书截个图放出来。 |
6
jsyzdej 2021-11-01 12:57:36 +08:00 via Android
可能你们公司搞中间人了,你试试物理机拔掉网线,用手机流量上网会不会报错
|
7
zu1k 2021-11-01 12:58:33 +08:00 via Android
@hanssx 可以确定,公司劫持了所有流量,想要搞监控。鼓估计过几天网络部门就要让你们安装并信任公司证书或者安装某特定软件了
|
8
jimages 2021-11-01 13:00:13 +08:00
怀疑是,你需要信任公司的证书,公司对所有 https 流量要审计,所有相当于 MITT 了你的 https 流量,因此需要你手动默认完全信任你的公司证书。
|
9
keyfunc 2021-11-01 13:00:25 +08:00
你们肯定上过什么监控设备了,因为 https 无法解析,所以自签了证书劫持所有流量,到客户端收到的证书就是你们自签发的证书了,当然会报错。
|
10
hanssx OP @dzdh 已经补充了,浏览器正常访问 https ,比如 baidu.com/google.com 均无问题,目前是 curl 有问题,然后我一直用来同步的 Insync( https://www.insynchq.com/)不工作了,是 curl 出现问题之后不工作的,我目测应该和 Insync 没关系,它就是用来同步的。
对了,SSH 好像连不到 Hong Kong VPS 了,公司内部开发机可以连上,我之前是用本地代理连 Hong Kong VPS 的。 ``` Looking up proxy server '127.0.0.1'... Host '127.0.0.1' resolved to 127.0.0.1. Connecting to 127.0.0.1:7890... Connection established. To escape to local shell, press 'Ctrl+Alt+]'. ``` |
11
oott123 2021-11-01 13:01:50 +08:00
|
12
hanssx OP @oott123 师傅,这报的错和 curl 一个样。。
``` $ echo | openssl s_client -connect example.com:443 | openssl x509 -noout -text depth=0 C = US, ST = California, L = Los Angeles, O = Internet Corporation for Assigned Names and Numbers, CN = www.example.org verify error:num=20:unable to get local issuer certificate verify return:1 depth=0 C = US, ST = California, L = Los Angeles, O = Internet Corporation for Assigned Names and Numbers, CN = www.example.org verify error:num=21:unable to verify the first certificate verify return:1 depth=0 C = US, ST = California, L = Los Angeles, O = Internet Corporation for Assigned Names and Numbers, CN = www.example.org verify return:1 DONE ...(后面是证书信息,暂时省略) ``` |
14
oott123 2021-11-01 13:09:59 +08:00 1
@hanssx 有用的就是证书信息咯,你如果看不明白,可以
echo | openssl s_client -connect 这里是地址:443 > cert.cer 把证书导出出来,用 Windows 或者其它的 GUI 工具看。我觉得大概是你公司签发了一个字段和原始证书一样、但是由自己 CA 签名的证书。浏览器正常,是因为贵司的管理软件,将该 CA 加入了物理机系统的信任存储区(你可以在浏览器点小锁图标查看证书看看信任链),Chrome 浏览器是用系统存储区的( Firefox 不是,但贵司的管理工具也有可能将 CA 加入它的存储区)。curl 之类有自己的证书存储,所以没有信任到。 |
16
zu1k 2021-11-01 13:49:15 +08:00 via Android
执行 route print 看一下本机路由
|
17
hanssx OP @oott123 师傅,证书信任链是下面的证书路径吧,公司确实是最顶端
![证书路径]( ) 用 openssl 命令返回的证书,签发者也是公司的 CA 。。。 Issuer: C = EN, CN = <打码字段> Enterprise Security SSL CA |
18
keyfunc 2021-11-01 14:00:35 +08:00 1
@hanssx 这样的证书链 100% 就是公司安装了监控导致的,如果手机热点也是这个问题的话,应该是 Windows 安装了什么客户端,比如上网客户端之类的,Windows 使用浏览器应该不报错,你可以尝试用 firefox 访问百度,理论上会报错。
|
19
hanssx OP @oott123 师傅,我刚才用 Firefox 看了一眼 baidu 的证书,它好像是常规的那种,其他用 chrome 、curl 的都是公司 CA 签发的。
![firefox 上面的证书]( ) 这是咋个意思呢,也就是说正常的证书公司也会放过?公司是改流量了吗? |
20
hanssx OP |
21
zu1k 2021-11-01 15:47:35 +08:00 via Android 1
@hanssx 我不要,恰好我近期也在做 MITM 相关,借贴宣传一下,https://github.com/zu1k/good-mitm ,用 MITM 技术来为自己服务
|