我正在开发Angular2应用程序,并请求它应该使用双向SSL身份验证,即浏览器在访问应用程序时必须提供有效(PFX)证书。我使用lite-server(使用BrowserSync)进行部署。我研究过BrowserSync API和源代码,但我找不到任何选项如何指定。
我找到了一个示例here,它创建了一个纯node.js服务器,提供了选项requestCert
和rejectUnauthorized
,但我无法找到如何在BrowserSync。也许我应该将这些添加到BrowserSync源中?
答案 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