为本地主机配置HTTPS以通过USB访问手机上的麦克风

问题描述 投票:0回答:1

我正在使用this模板设置开发环境。我的目标是获得对麦克风的访问权限,因此我可以开始使用Web Audio API开发一个小项目。我在Windows 7便携式计算机上运行服务器,并在本地访问它可以正常工作->我打开localhost,调用navigator.mediaDevices.getUserMedia并获得对流的访问权限。但是,我想在手机上运行它(带有Android 9的诺基亚6)。但是要访问那里的麦克风,我的本地主机需要HTTPS,并且我无法让Windows 7信任我生成的证书。 (或者至少Chrome这么说。也在Opera上测试过。)

通过修改webpack express服务器的某些配置(希望正确的方法,我将服务器设置为使用https和生成的证书)在/build/dev-server.js中,我拥有(除了模板中的所有其他逻辑):

const app = express()
const options = {
  key: fs.readFileSync(path.join(__dirname, '../cert/server.key')),
  cert: fs.readFileSync(path.join(__dirname, '../cert/server.crt')),
  ca: fs.readFileSync(path.join(__dirname, '../cert/rootCA.pem'))
}
const server = https.createServer(options, app).listen(port)

我通过了webpack验证,并且服务器成功运行,但是即使我提供了SAN,浏览器仍然显示NET :: ERR_CERT_AUTHORITY_INVALID(至少我认为是这样)通过遵循this文章,我可以使用OpenSSL生成证书。此处的区别在于,本文提供了IIS服务器证书配置的示例(通过mmc.exe),而我的应用程序只是本地运行的Webpack Express服务器。因此,我在同一地方执行了本文建议的两种操作->在个人证书下,我同时添加了rootCA.pem和server.pfx。在“受信任的根证书颁发机构”下,我导入了rootCA.pem,但未如文章所述收到警告消息。

那没用。

我无法使用其他工具生成证书。无法使用makecert.exe生成(请不要再努力了,因为已弃用),并且Windows 7 Powershell中没有New-SelfSignedCertificate cmdlet。

您能帮我发现我在做什么错吗?我是否正确配置了Webpack,如果可以,则-信任我的自签名证书的正确方法是什么?

webpack https progressive-web-apps microphone self-signed-certificate
1个回答
0
投票

您可以在没有HTTPS的情况下将http://localhost用于这些API。这样便可以轻松开发应用程序。

我已经将这些API中的几种用于不同的项目。我也用过USB和蓝牙。

现在从外部设备访问将需要真实的HTTPS。

对我来说,通过部署到测试源可以更轻松地从设备进行测试。如果有帮助,我可以使用S3和CloudFront。

© www.soinside.com 2019 - 2024. All rights reserved.