Я настраиваю свою среду разработки, используя этот шаблон. Моя цель - получить доступ к микрофону, чтобы я мог начать разработку небольшого проекта с использованием API Web Audio. Я запускаю сервер на ноутбуке с Windows 7 и локальный доступ к нему работает нормально -> Я открываю localhost, вызываю navigator.mediaDevices.getUserMedia и получаю доступ к потоку. Тем не менее, я хочу запустить его на своем телефоне (Nokia 6 с Android 9). Но чтобы получить доступ к микрофону, моему локальному хосту нужен HTTPS, и я не могу заставить Windows 7 доверять моему сгенерированному сертификату. (Или, по крайней мере, Chrome говорит об этом. Протестировано и в Opera.)
Я настроил свой сервер на использование https и сгенерированного сертификата, изменив некоторые конфигурации экспресс-сервера webpack (надеюсь, правильный путь). В / 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)
Я прошёл валидацию веб-пакета, и сервер успешно работает, но браузер по-прежнему говорит NET :: ERR_CERT_AUTHORITY_INVALID, хотяЯ предоставляю SAN (по крайней мере, я так думаю), я генерирую сертификат, используя OpenSSL, следуя этой статье. Разница здесь в том, что в статье приведен пример конфигурации сертификата сервера IIS (через mmc.exe), а мое приложение - просто экспресс-сервер webpack, работающий локально. Поэтому я делаю то, что предлагает статья в одном месте -> под личными сертификатами я добавляю и rootCA.pem, и server.pfx. В Trusted Root Certification Authorities я импортировал rootCA.pem, но не получил предупреждающее сообщение, как сказано в статье.
Это не сработало.
У меня возникли проблемы при создании сертификата с другими инструментами. Невозможно сгенерировать с помощью makecert.exe (не пытался больше, потому что он устарел), а командлет New-SelfSignedCertificate недоступен в Windows 7. Powershell.
Не могли бы вы помочь мне понять, что я делаю неправильно? Правильно ли я настраиваю веб-пакет, и если да, то как правильно доверять моему самозаверяющему сертификату?