【发布时间】:2016-01-16 04:25:57
【问题描述】:
我有一个 erlang 应用程序,它需要使用 HTTPS 连接到托管在 Apache 上的 php 应用程序。如何在我的 erlang 机器上安装客户端证书?
【问题讨论】:
-
你是用
httpc还是别的什么? -
没什么,我想知道erlang能不能连接到其他https服务器。
我有一个 erlang 应用程序,它需要使用 HTTPS 连接到托管在 Apache 上的 php 应用程序。如何在我的 erlang 机器上安装客户端证书?
【问题讨论】:
httpc还是别的什么?
作为安全套接字层接口的 Erlang/OTP 的 SSL 模块有一个定义客户端证书的选项:
{cacertfile, path()}包含 PEM 编码 CA 证书的文件的路径。 CA 证书在服务器身份验证和构建客户端证书链时使用。
现在,如果您想使用支持客户端 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 选项的完整列表。
【讨论】: