現在瀏覽器對安全的限制越來越嚴格,有些功能必須要在https安全環境下才能訪問,比如在移動端瀏覽器上使用 navigator.mediaDevices.getUserMedia() 調用攝像頭,否則 navigator.mediaDevices 對象會是 undefined 。
當然生產環境購買申請 ssl證書就可以實現 https了,但是本地開發環境是沒法申請證書的,而且一般的自簽名證書已經不好使了,並且操作也稍顯麻煩。
Google 的開源項目mkcert可以一條命令生成瀏覽器信任的本地證書,支持自定義域名如 example.test 、localhost 也支持 IP 127.0.0.1 、192.168.1.100 等。。。
(其實是兩條。。。)
$ mkcert -install #生成根證書,並將其加入到系統信任證書中
$ mkcert test.com "*.test.com" localhost 127.0.0.1 192.168.0.110 ::1 #可以一次加入多個主機名(域名、IP等)
其實跟之前的自簽名證書主要的區別是多了前面根證書的步驟。
這樣就舒服多了,也沒有安全提醒了:
項目地址:https://github.com/FiloSottile/mkcert
PS:vscode liveserver插件的https配置方法:
"liveServer.settings.https": {
"enable": true,
"cert": "/Users/dubox/dev/docker/work/github/https/test.com+5.pem",
"key": "/Users/dubox/dev/docker/work/github/https/test.com+5-key.pem",
"passphrase": ""
}