Erlang 需要连接到 https 服务器吗?

Erlang needs to connect to https server?

我有一个 erlang 应用程序,它需要使用 HTTPS 连接到托管在 Apache 上的 php 应用程序。如何在我的 erlang 机器上安装客户端证书?

作为安全套接字层接口的 Erlang/OTP 的 SSL 模块有一个用于定义客户端证书的选项:

{cacertfile, path()}

Path to a file containing PEM-encoded CA certificates. The CA certificates are used during server authentication and when building the client certificate chain.

现在,如果您想使用支持客户端 ssl 证书的 HTTP 客户端,而不是自己编写所有内容,您有一些选择:

1. HTTPC: 这是OTP的默认HTTP客户端。

SSLOptions = [{cacertfile, "/path/to/cert/file"}],
HTTPOptions = [{ssl, SSLOptions}],
%% ... define Method, Request and Options ...
httpc:request(Method, Request, HTTPOptions, Options),

2。 Hackney: 这是第三方的简单 HTTP 客户端。

SSLOptions = [{cacertfile, "/path/to/cert/file"}],
Options = [{ssl_options, SSLOptions}],
%% ... define Method, URL, Headers and Payload ...
hackney:request(Method, URL, Headers, Payload, Options),

Here 您可以看到可以使用的客户端 ssl 选项的完整列表。