我正在使用这个模板设置我的开发环境。我的目标是获得对麦克风的访问权限,因此我可以开始使用 Web Audio API 开发一个小项目。我在 Windows 7 笔记本电脑上运行服务器并在本地访问它工作正常 -> 我打开 localhost,调用 navigator.mediaDevices.getUserMedia 并获得对流的访问权限。但是,我想在我的手机上运行它(诺基亚 6 和 Android 9)。但是要访问那里的麦克风,我的本地主机需要 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 验证并且服务器成功运行,但是浏览器仍然显示 NET::ERR_CERT_AUTHORITY_INVALID,即使我提供了 SAN(至少我认为我这样做)我按照这篇文章使用 OpenSSL 生成了一个证书。这里的不同之处在于,本文给出了一个 IIS 服务器证书配置的示例(通过 mmc.exe),而我的应用程序只是一个 webpack express 服务器,在本地运行。所以我在同一个地方做了文章建议的两个 -> 在个人证书下我添加了 rootCA.pem 和 server.pfx。在受信任的根证书颁发机构下,我导入了 rootCA.pem,但没有收到文章所述的警告消息。
那没有用。
我无法使用其他工具生成证书。无法使用 makecert.exe 生成(没有更努力,因为它已被弃用)并且 New-SelfSignedCertificate cmdlet 在 Windows 7 Powershell 中不可用。
你能帮我找出我做错了什么吗?我是否正确配置了 webpack,如果是,那么信任我的自签名证书的正确方法是什么?