2014-10-30 59 views
37

通常在開發人員模式下,Webpack使用HTTP運行。通常有一個Web服務器通過HTTP和webpack在單獨的端口上使用http/websockets提供內容。在HTTPS/Web套接字上運行的Webpack Dev服務器安全

是否可以在https和websocket上的https和webpack安全上運行Web服務器?

+0

這個重讀了幾次之後,它可能是一個重複我的問題? http://stackoverflow.com/questions/31973085/how-to-run-webpack-dev-server-https-hot-inline – chemoish 2015-08-12 20:02:19

回答

55

webpack docs

有你可以添加到的WebPack-DEV-server命令

webpack-dev-server --https 
+1

webserver在https中,但webpack-dev-server不會創建一個https連接到套接字.IO-是否正確? – chemoish 2015-08-12 20:03:45

+0

我試過了,現在http不再工作了。有沒有辦法如何使用https和http? – Eschon 2016-09-22 10:21:11

+0

@Eschon是否找到使用http和https的解決方案? – 2016-12-22 17:46:46

19

雖然上面的回答是CLI正確的,如果你不是在命令行標誌,你可以做這樣的事情(在一飲而盡任務):

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

當這樣做時,我得到一個502錯誤的網關錯誤。有什麼特別的我可能配置,導致這個或我需要的東西?例如,這是否在Windows中工作? – Sawtaytoes 2016-06-29 04:50:47

+0

也許你需要將端口從1337改爲443?或者,您可能需要在請求中包含端口到服務器,例如https:// localhost:1337?給我們更多關於你的服務器設置和你正在加載什麼URL的細節,也許我們可以幫助更多:) – dangoldnj 2016-11-09 19:03:31

+0

我第一次在我的瀏覽器中得到了「net :: ERR_INSECURE_RESPONSE」 - 錯誤,因爲webpack-dev-server使用自簽名證書。這是通過訪問一次阻止的「https:// .... .js」-url來修復的,並告訴瀏覽器我確定我想繼續。 – np8 2017-09-24 09:51:48

6

這僅用於測試環境:

您需要配置的WebPack-dev的服務器如下:

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

然而,有一種被稱爲錯誤時的WebPack嘗試讀取密鑰的密碼。 please see this link

最簡單的解決辦法是生成沒有密碼一鍵(我不知道這樣做的安全後果!但是這是僅用於測試)。

要採取密碼制訂密鑰使用這個命令:

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

,並使用新的密鑰在預覽配置行

+1

你發佈的這個鏈接,它可能不是你想要的嗎? – Neikius 2017-12-13 08:50:19

+2

只需添加--https,不需要--cert ./cert.pem --key ./key.pem,webpack會自動生成cer。 – 2018-01-05 07:48:41

相關問題