使用AngularJS / NodeJS将PEM证书添加到Http请求

时间:2014-08-21 21:37:29

标签: javascript node.js angularjs https restangular

我目前正在开发一个需要从位于加密网络中的REST端点获取数据的应用程序。要访问网络中的数据,我需要在物理上(当前不可能)或使用提供给我的PEM证书来访问网络中的数据。

我使用node作为应用程序的后端,使用AngularJS作为前端。

我的HTTPS请求是使用 restangular 在前端完成的,因为我只需要从位于加密网络的REST端点读取数据。

TL;博士

我的问题是:如何使用pem证书使用angular / restangular进行HTTPS POST请求?以前在PHP上我所做的是调用curl,但这与我上面讨论的不同。我很久以前就像这样用过PHP:

function request($endpoint){
    $cert = 'certificate.pem';
    $curl = curl_init();
    $options = array( 
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_FOLLOWLOCATION => 1,
        CURLOPT_SSL_VERIFYHOST => 0,
        CURLOPT_SSL_VERIFYPEER => 0,
        CURLOPT_URL            => $endpoint,
        CURLOPT_SSLCERT        => $cert,
        CURLOPT_SSLCERTPASSWD  => $_SESSION['...'] ,
    );
    curl_setopt_array($curl , $options);
    return curl_exec($curl);
}

1 个答案:

答案 0 :(得分:2)

您必须在后端执行此操作,因为前端确实存在这种功能。

如果该后端是节点,那么您只需使用https.request()并使用keycertca(或仅pfx)属性设置适当。