瀏覽器https時不支持 調用媒體信息,生成和添加本地證書

前情:

 MediaDevices 的方法 enumerateDevices(): 請求一個可用的媒體輸入和輸出設備的列表
navigator.mediaDevices.enumerateDevices();js調用獲取媒體信息,瀏覽器不支持所以未獲取到。是因爲chrome需要https來訪問。​

 

解決方法:虛擬機ubuntu需要生成本地的證書,key,pem,來實現https訪問。

1.openssl

 沒安裝先安裝,可以看看有沒有/usr/lib/ssl

2.下面生成ca證書

創建一個你放證書的目錄:$ mkdir work/cert

 

將之前ssl下的文件 copy到新創建的證書目錄下:$ cp /usr/lib/ssl/misc/CA.sh .

繼續在work/cert目錄下  $ ./CA.sh -newca   ----  newca是參數 有不同參數 按需要查詢使用

出來如下界面 輸入phrase的時候4-1024位 本地用簡單點就行

上面的成功後,目錄下生成demoCA裏面有一些文件 

cacert.pem和private/cakey.pem分別爲ca根證書和ca證書私鑰   ----生成client的證書時會檢查

3 .生成服務器證書

    1)    生成私鑰:        openssl genrsa -des3 -out server.key 1024

    2)    生成csr文件:   openssl req -new -key server.key -out server.csr

    3)    生成證書&簽名:    openssl ca -in server.csr -out server.crt (出錯把demoCA下的index.txt刪了,再touch一個新的)

 

4.生成客戶端證書

    1)    生成私鑰:        openssl genrsa -des3 -out client.key 1024

    2)    生成csr文件:   openssl req -new -key client.key -out client.csr

    3)    生成證書&簽名:        openssl ca -in client.csr -out client.crt(出錯把demoCA下的index.txt刪了,再touch一個新的)

key : fs.readFileSync('./cert/server.key'), 
cert: fs.readFileSync('./cert/server.crt'),
passphrase:'之前填寫的字符'

 

使用瀏覽器訪問本地 可使用https了

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章