Чтобы иметь возможность обслуживать сайт по протоколу HTTPS с локального хостинга, вам необходимо создать самозаверяющий сертификат.
Самозаверяющий сертификат достаточен для установления безопасного HTTPS-соединения в целях разработки. Хотя браузеры будут жаловаться на то, что сертификат является самозаверяющим (и как таковой не является надежным).
Для создания сертификата у вас должно быть OpenSSL установлен в вашей системе.
Возможно, он у вас уже установлен, просто попробуйте ввести openssl в своем терминале.
Если нет, то на Mac вы можете установить его с помощью brew install openssl (если вы используете Доморощенный ). В противном случае выполните поиск в Google “как установить openssl на
Как только OpenSSL будет установлен, выполните эту команду:
openssl req -nodes -new -x509 -keyout server.key -out server.cert
Вам будет предложено ответить на несколько вопросов. Первое – это название страны:
Generating a 1024 bit RSA private key ...........++++++ .........++++++ writing new private key to 'server.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:
Затем ваш штат или провинция:
State or Province Name (full name) [Some-State]:
Ваш город:
Locality Name (eg, city) []:
…и название вашей организации:
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Organizational Unit Name (eg, section) []:
Вы можете оставить все это пустым.
Просто не забудьте установить это значение в localhost :
Common Name (e.g. server FQDN or YOUR name) []: localhost
…и добавить свой адрес электронной почты:
Email Address []:
Вот и все! Теперь у вас есть 2 файла в папке, в которой вы выполнили исходную команду:
server.certявляется самозаверяющим файлом сертификатасервер.ключявляется закрытым ключом сертификата
Оба файла понадобятся для установления HTTPS-соединения, и в зависимости от того, как вы собираетесь настроить свой сервер, процесс их использования будет отличаться.
Эти файлы необходимо поместить в место, доступное приложению, а затем вам нужно будет настроить сервер для их использования.
Это пример использования модуля https core и экспресс:
const https = require('https')
const app = express()
app.get('/', (req, res) => {
res.send('Hello HTTPS!')
})
https.createServer({}, app).listen(3000, () => {
console.log('Listening...')
})Без добавления сертификата, если я подключусь к https://localhost:3000 это то, что покажет браузер:
С сертификатом на месте:
const fs = require('fs')
//...
https.createServer({
key: fs.readFileSync('server.key'),
cert: fs.readFileSync('server.cert')
}, app).listen(3000, () => {
console.log('Listening...')
})Chrome сообщит нам, что сертификат недействителен (поскольку он самоподписан), и попросит нас подтвердить, прежде чем продолжить (однако HTTPS-соединение все равно будет работать).:
Оригинал: “https://flaviocopes.com/express-https-self-signed-certificate/”