使用SSL连接到Arch Linux上的Cloudflare的“坏记录mac”

时间:2017-07-21 19:28:45

标签: https openssl erlang cloudflare archlinux

我有一个简单的Erlang程序试图执行HTTPS GET。但是,只要ApiUrl指向由cloudflare代理的域,就会失败并显示“bad record mac”。

#!/usr/bin/env escript
main([]) -> 
    inets:start(), 
    ssl:start(),
    ApiUrl = "https://remexre.xyz/",
    io:format("ApiUrl = ~p~n", [ApiUrl]),
    Request = {ApiUrl, []},
    SslOpts = [{verify, verify_none}],
    Opts = [{body_format, binary}],
    {ok, {{_, 200, _}, _, Body}} = httpc:request(get, Request, [{ssl, SslOpts}], Opts),
    io:format("~p~n", [Body]).

但它适用于非Cloudflare HTTPS域,包括example.com和此站点。

我用Wireshark检查了tls流,看来远程(所以cloudflare)正在向客户端发送“坏记录mac”。

编辑:这发生在Arch Linux(多台机器)上,但不在朋友的Ubuntu机器上。

编辑2 Here's the wireshark dump.

编辑3 :我正在使用:Erlang/OTP 20 [erts-9.0.1] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10] [hipe] [kernel-poll:false],它来自Arch中20.0.1-2个软件包的erlang版本。

0 个答案:

没有答案