2017-02-15 82 views
1

我正在開發一個Angular2應用程序,並且要求它使用雙向SSL認證,即瀏覽器在訪問應用程序時必須提供一個有效的(PFX)證書。我正在使用lite-server(使用BrowserSync)進行部署。我研究了BrowserSync API和源代碼,但是我找不到如何指定它的任何選項。Angular2 BrowserSync雙向SSL

我發現它創建了一個純粹的node.js服務器,從而選擇requestCertrejectUnauthorized一個例子here,但我無法找到我怎麼能在BrowserSync使用這些。也許我應該將這些添加到BrowserSync源代碼中?

回答

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