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

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

最佳答案

如果有人感兴趣,这就是我使用小型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

07-25 23:42
查看更多