![]() | 1 zhigang1992 2020-06-21 10:46:36 +08:00 会不会是后端的 cold start? 直接用 curl 能复现么? |
2 arrow8899 2020-06-21 10:48:55 +08:00 服务器端抓包看一下 |
3 chinawrj 2020-06-21 10:52:39 +08:00 检查 CRL |
![]() | 4 chillwind OP 服务器端 nginx 收到请求也有延迟,nginx 的日志在客户端启动后约 3s 打印出来 |
![]() | 5 chillwind OP 不太可能是后端问题,iOS 端配置好 charles 的代理,请求就正常了。charles 要安装个证书在手机上,这部分原理不是很清楚,怀疑是不是减少了证书验证环节,证书验证在电脑上的 charles 上进行了。 |
6 wowbaby 2020-06-21 11:12:01 +08:00 是不是用了 let's encrypt,我遇到过这个问题,原因是有些 dns 被 Q,换证书解决。 |
![]() | 9 GuryYu 2020-06-21 11:53:20 +08:00 ![]() 之前刚碰到这个问题,坑了我们很久,在不同的 iOS 手机型号和版本上的现象还不一致,安卓手机上未发现。 最终检查出来是因为 let's encrypt 的证书 OSCP 服务器域名被 DNS 污染,导致首个请求验证 OSCP 时响应超时。 关于 let's encrypt 的 OSCP 服务器被 DNS 污染 v 站之前有讨论过,详见: t/665734 t/661753 目前解决方案有两种, 1. 更换非 let's encrypt 证书,避免访问被污染的 OSCP 服务器 2. 在 nginx 配置开启 ssl_stapling,并指定未被污染的 DNS 服务器。由服务器进行请求 OSCP 认证缓存后发送给客户端。 配置方法: 在 nginx 的 http 配置内添加 ``` ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 4.4.4.4 valid=60s; resolver_timeout 2s; ``` 由于我们使用了 let's encrypt 提供的通配符证书,没有其他平台能提供免费的通配符证书。 所以我们当前使用方案 2 来解决 |
10 shinciao 2020-06-21 12:07:34 +08:00 via Android 开启 ocsp 装订。或者换一个证书品牌,阿里云和 trustasia 都可以申请免费的一年单域名。我是 269 买了个 comodo 一年的通配符。 |
![]() | 11 qwerthhusn 2020-06-21 13:32:25 +08:00 @lanternxx 老兄你在哪买的,才 269 ? |
12 shinciao 2020-06-21 13:36:47 +08:00 @qwerthhusn #11 https://item.taobao.com/item.htm?id=613109712119 这家,和客服说 V2EX 来的可以改价 269 |
![]() | 13 yangxin0 2020-06-21 13:46:38 +08:00 via iPhone wireshark 在手机上抓个包看看。 |
![]() | 14 xi_lin 2020-06-21 15:30:24 +08:00 ![]() https://imququ.com/post/optimize-tls-handshake.html 这文章说的握手流程都可以看看 |
![]() | 15 allenforrest 2020-06-21 15:55:33 +08:00 如果 Let's Encrypt 证书,基本上就是 OCSP 服务器域名被污染的问题。 建议在服务器上开 SSL Stapling 。 |
![]() | 16 xiaotianhu 2020-06-21 16:10:15 +08:00 直接阿里云免费走起. |
![]() | 17 acumen 2020-06-21 22:12:54 +08:00 之前也遇到过在 iOS 特定的系统和机型上的网页首次访问 HTTPS 请求特别慢的问题。我们是换了证书。应该是相同情况。 |
![]() | 18 0xDatou let's encrypt +1 |