Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ssl在Erlang中以deru bin()的形式传递证书和密钥_Ssl_Erlang - Fatal编程技术网

使用ssl在Erlang中以deru bin()的形式传递证书和密钥

使用ssl在Erlang中以deru bin()的形式传递证书和密钥,ssl,erlang,Ssl,Erlang,我从PEM文件中取出证书和密钥,将base64解码为二进制,并将它们放入Cert和key 然后我有以下代码来打开连接 make_connection(Cert, Key) -> Options = [{cert, Cert}, {key, Key}, {mode, binary}], Timeout = 1000, % {ok, Socket} replaced for debugging... Socket = ssl:connect(?PUSH_SERV

我从PEM文件中取出证书和密钥,将base64解码为二进制,并将它们放入
Cert
key

然后我有以下代码来打开连接

make_connection(Cert, Key) ->
    Options = [{cert, Cert}, {key, Key}, {mode, binary}],
    Timeout = 1000,
    % {ok, Socket} replaced for debugging...
    Socket = ssl:connect(?PUSH_SERVER_HOST, ?PUSH_SERVER_PORT,
            Options, Timeout),
    Socket.
调用
make_connection(Cert,Key)
返回
{error,{eoptions,{Key,}}}

当我将
Cert
Key
替换为PEM文件的路径,以及
Options=[{certfile,…keyfile…}]
时,它会按照预期工作并创建SSL套接字

因此,仅使用
cert
key
我是否遗漏了任何内容?

查看
ssl
应用程序中的文件,似乎您应该使用元组作为
密钥,而不是二进制:

validate_option(key, {KeyType, Value}) when is_binary(Value),
                       KeyType == rsa;
                       KeyType == dsa ->
    {KeyType, Value};
其中指定了密钥的类型。里面似乎有一个bug,它说应该使用二进制文件(deru bin())作为密钥