2017-02-15 14 views
1

Я разрабатываю приложение Angular2 и имею запрос, что он должен использовать двухстороннюю аутентификацию SSL, то есть браузер должен предоставить действительный сертификат (PFX) при доступе к приложению. Я использую Lite-сервер (который использует BrowserSync) для развертывания. Я изучил API BrowserSync и исходный код, но я не могу найти какие-либо параметры, как это указать.Angular2 BrowserSync двусторонний SSL

Я нашел пример here, который создает чистый сервер Node.js, давая варианты requestCert и rejectUnauthorized, но я не могу узнать, как я могу использовать их в BrowserSync. Может быть, я должен добавить их где-нибудь в источник BrowserSync?

ответ

0

В случае, если кто-либо заинтересован, так я сделал с небольшим сценарием bash. Не было надлежащего способа настройки Browsersync на момент написания. Запустив этот скрипт, он изменит код utils.js в Browsersync, установив некоторые параметры для поддержки авторизации на стороне клиента.

Сценарий может быть запущен с опцией 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