Я пытался включить SSL в своем приложении MERN, развернутом на heroku.
Я застрял на этом шаге гораздо больше, чем необходимо:
Я следую этому руководству по для настройки SSL-сертификата на моем веб-сайте.
После создания сертификата с помощью этой команды локально:
sudo certbot точно --manual
Меня попросил сделать это терминал:
Создайте файл, содержащий только эти данные:
dC9Ry5Ps_qgkOheuWnxCXFobim8vshqMqbDC9FQS4ic.noFTXhkC3HFnZ-RC9djrM6FpWGRy2AFSB17xz59apDA
И сделайте его доступным на вашем веб-сервере по этому URL-адресу:
http://www.site_name.com/.well-known/acme-challenge/dC9Ry5Ps_qgkOheuWnxCXFobim8vshqMqbDC9FQS4ic
Согласно учебнику, я должен был сделать это на бэкэнде:
app.get('/.well-known/acme-challenge/:content', function(req, res) {
res.send('xxxxxxxxxxxx-yyyy.zzzzzzzzzzzzzzzzzzz')
})
Я сделал это, и, как и ожидалось, это не сработало, поскольку certbot будет нацелен на внешний интерфейс, а не на серверный:
Создайте файл, содержащий только эти данные:
dC9Ry5Ps_qgkOheuWnxCXFobim8vshqMqbDC9FQS4ic.noFTXhkC3HFnZ-RC9djrM6FpWGRy2AFSB17xz59apDA
И сделайте его доступным на вашем веб-сервере по этому URL-адресу:
http://www.site_name.com/.well-known/acme-challenge/dC9Ry5Ps_qgkOheuWnxCXFobim8vshqMqbDC9FQS4ic
И мне просто не имеет смысла делать эти данные доступными
dC9Ry5Ps_qgkOheuWnxCXFobim8vshqMqbDC9FQS4ic.noFTXhkC3HFnZ-RC9djrM6FpWGRy2AFSB17xz59apDA
на стороне клиента.
Итак, мой вопрос: должен ли он быть доступен на стороне клиента или на стороне сервера? Это на стороне сервера, должен ли я просто написать код на стороне клиента, который будет связываться с сервером, чтобы получить его?
Итак, когда происходит процесс проверки, и он пытается получить доступ к конечной точке бэкэнда через это:
http://www.site_name.com/.well-known/acme-challenge/dC9Ry5Ps_qgkOheuWnxCXFobim8vshqMqbDC9FQS4ic
Приложение рассматривает это как попытку доступа к файлу на стороне клиента...
Другими словами, я не могу настроить таргетинг на серверную конечную точку.
Все руководства игнорируются этот момент, и это заставляет меня чувствовать, что я что-то упускаю или что я глуп.
Итак, есть идеи, что мне делать?
У этого парня похоже, та же проблема, что и у меня, но нет ответа был предоставлен.