2014-10-30 11 views
37

Zwykle w trybie programisty Webpack działa z wykorzystaniem protokołu HTTP. Zwykle serwer WWW udostępnia treści za pośrednictwem HTTP i pakietu internetowego za pomocą http/websockets na oddzielnym porcie.Serwer Webpack działający na HTTPS/Web Sockets Secure

Czy można bezpiecznie uruchomić serwer WWW na https i na internetowym hoście https/websocket?

+0

Po rereading to kilka razy to może być duplikat mojego pytania? http://stackoverflow.com/questions/31973085/how-to-run-webpack-dev-server-https-hot-inline – chemoish

Odpowiedz

55

Zobacz webpack docs

Jest flag można dodać do polecenia WebPack-dev-serwer

webpack-dev-server --https 
+1

webserver jest w https, ale webpack-dev-server nie tworzy połączenia https z gniazdem .io-correct? – chemoish

+0

Próbowałem tego, a teraz http już nie działa. Czy istnieje sposób, w jaki mogę używać zarówno https, jak i http? – Eschon

+0

@Eschon znalazłeś jakieś rozwiązanie, aby użyć zarówno http, jak i https? –

19

Chociaż powyższa odpowiedź jest poprawna dla CLI, jeśli nie jesteś w CLI, można zrobić coś takiego (w zadaniu haustem):

var WebpackDevServer = require('webpack-dev-server'); 

new WebpackDevServer(webpack(WebpackDevConfig), { 
    https: true, 
    hot: true, 
    watch: true, 
    contentBase: path.join(__dirname, 'src'), 
    historyApiFallback: true 
}).listen(1337, 'localhost', function(err, result) { 
    if (err) { 
     console.log(err); 
    } 
    console.log('Dev server running at https://localhost:1337'); 
}); 
+0

Po wykonaniu tej czynności pojawia się błąd 502 Bad Gateway. Czy jest coś specjalnego, co mogłem skonfigurować, które powoduje to lub coś innego, czego potrzebuję? Na przykład, czy działa to w systemie Windows? – Sawtaytoes

+0

Może chcesz zmienić port z 1337 na 443? A może musisz podać port w swoim żądaniu na serwer, taki jak https: // localhost: 1337? Przekaż nam więcej informacji o tym, jak skonfigurowałeś serwer i jaki adres URL ładujesz, a może pomożemy jeszcze więcej :) – dangoldnj

+0

Najpierw otrzymałem "net :: ERR_INSECURE_RESPONSE" -błędy w mojej przeglądarce, ponieważ webpack-dev-server używa samopodpisany certyfikat. Zostało to naprawione przez odwiedzenie zablokowanego "https: // .... .js" -url i poinformowanie przeglądarki, że jestem pewien, że chcę kontynuować. – np8

6

to tylko dla środowiska testowego:

trzeba skonfigurować WebPACK-dev-serwer w następujący sposób:

webpack-dev-server --https --cert ./cert.pem --key ./key.pem

jednak nie jest znany błąd podczas WebPack próbuje odczytać hasło z klucza. please see this link

Najprostszym obejść to, aby wygenerować klucz bez hasłem (nie wiem konsekwencje zabezpieczeń to! Ale jest to tylko test).

Aby wziąć hasło ze swojego klucza użyj polecenia:

$ openssl rsa -in key.pem -out newKey.pem

i użyć nowego klucza w wierszu konfiguracji zapowiedzi

+1

Ten link wysłałeś, prawdopodobnie nie jest to zgodne z twoim zamierzeniem? – Neikius

+2

po prostu dodaj --https, nie ma potrzeby --cert ./cert.pem --key ./key.pem, webpack wygeneruje cer dla siebie. –

Powiązane problemy