Angular2 BrowserSync双向SSL

时间:2017-02-15 16:15:12

标签: node.js angular ssl browser-sync

我正在开发Angular2应用程序,并请求它应该使用双向SSL身份验证,即浏览器在访问应用程序时必须提供有效(PFX)证书。我使用lite-server(使用BrowserSync)进行部署。我研究过BrowserSync API和源代码,但我找不到任何选项如何指定。

我找到了一个示例here,它创建了一个纯node.js服务器,提供了选项requestCertrejectUnauthorized,但我无法找到如何在BrowserSync。也许我应该将这些添加到BrowserSync源中?

1 个答案:

答案 0 :(得分:0)

如果有人感兴趣,这就是我用一个小的bash脚本做的。在编写本文时,没有正确的方法来配置Browsersync。通过运行此脚本,可以通过设置一些选项来修改Browsersync中的utils.js代码以支持客户端身份验证。

可以使用指定的true|false选项运行脚本,无论是否请求客户端身份验证。

#!/bin/bash

CLIENT_AUTH=true
if [ "$#" -ne 0 ]; then
  CLIENT_AUTH=$1
fi

if [ $CLIENT_AUTH = true ] ; then
  OLD_CLIENT_AUTH=false
else.
  OLD_CLIENT_AUTH=true
fi

FILE=./node_modules/browser-sync/lib/server/utils.js
REPLACE="requestCert:$CLIENT_AUTH,rejectUnauthorized:$CLIENT_AUTH,"
FROM="requestCert:$OLD_CLIENT_AUTH,rejectUnauthorized:$OLD_CLIENT_AUTH,"

grep requestCert $FILE >/dev/null
if [ $? -ne 0 ] ; then
  sed -i "s/ca: getCa(options),/ca: getCa(options),$REPLACE/g" $FILE
else
  sed -i "s/$FROM/$REPLACE/g" $FILE
fi