Nodejs бесплатный HTTPS сертификат с gethttpsforfree или кем-либо еще - PullRequest
0 голосов
/ 18 октября 2019

Я ищу бесплатный сертификат HTTPS для проекта nodejs, который может работать на Ubuntu LTS и Windows. (Мне это нужно для push-уведомлений).

Я связал с "Let's encrypt" и "https://gethttpsforfree.com/" (что, я думаю, тоже использует Let's encrypt), но у меня всегда возникает ошибка в концекогда он показывает, что используется порт 80. Я не могу открыть 80, потому что он используется другим проектом, и у меня нет доступа к нему.

Идея состоит в том, чтобы создать сертификат, который мог бы работатьна сервере узлов с соответствующими ключами, как в примере:

const https = require("https");

//Irelevant code...

https.createServer({  
    key: fs.readFileSync("nodeServerKey.pem", "utf8"),
    cert: fs.readFileSync("nodeServerCert.cert", "utf8")
}, app).listen(process.env.PORT, (err) => {
    if (err) log.error(err);
    log.info('Server (https) running since: ' + new Date());
});

Когда я использую метод https://gethttpsforfree.com, он завершает все шаги с ОК, кроме «Шаг 4: Подтвердить право собственности», который заканчивается наэта ошибка (я изменил личную информацию, такую ​​как домен и IP).

Ошибка: не удалось выполнить вызов домена. Пожалуйста, вернитесь к шагу 1. {"identifier": {"type": "dns","значение": "exampleNotReal.dyndns.biz"}, "статус": "недействительные", "истекает": "2019-10-25T10: 22: 04Z", "вызовы": [{ "типа": "HTTP-01 "," status ":" invalid "," error ": {" type ":" urn: ietf: params: acme: error: connection "," detail ":" Fetching http://exampleNotReal.dyndns.biz/.well-known/acme-challenge/KUUhXCjCkDdalnUTyItqiNze03UBLiGzKGqdW-IctF8: Тайм-аут во время соединения(вероятная проблема с брандмауэром) "," status ": 400}," url ":" https://acme -v02.api.letsencrypt.org / acme / chall-v3 / 831805630 / -ALg4Q","токен ":" KUUhXCjCkDdalnUTyItqiNze03UBLiGzKGqdW-IctF8 "," validationRecord ": [{" url ":" http://exampleNotReal.dyndns.biz/.well-known/acme-challenge/KUUhXCjCkDdalnUTyItqiNze03UBLiGzKGqdW-IctF8","hostname":"exampleNotReal.dyndns.biz","port":"80","addressesResolved":["adressNotReal"],"addressUsed":"adressNotReal"}]},{"type":"dns-01","status":"invalid","url":" https://acme -v02.api.letsencrypt.org / acme / chall-v3 / 831805630 / 7wrhNw ", "token": "KUUhXCjCkDdalnUTyItqiNze03UBLiGz" IFq: "IFQ:" type_UBLIGZKFD"TLS-alpn-01", "статус": "недействительные", "URL": "https://acme -v02.api.letsencrypt.org / Acme / Chall-v3 / 831805630 / bbmx1g ","token": "KUUhXCjCkDdalnUTyItqiNze03UBLiGzKGqdW-IctF8"}]}

Я не знаю, почему он сообщает порт 80, потому что я указываю еще один

sudo python2 -c "import BaseHTTPServer; \
    h = BaseHTTPServer.BaseHTTPRequestHandler; \
    h.do_GET = lambda r: r.send_response(200) or r.end_headers() or r.wfile.write('KUUhXCjCkDdalnUTyItqiNze03UBLiGzKGqdW-IctF8.NfSBGYz0Vk2JPD9Pi1Pqko5cfqjgD3LchCOBgVVCSjE'); \
    s = BaseHTTPServer.HTTPServer(('IP', ANOTHERPORT), h); \
    s.serve_forever()"

Любая идея или другаяметод?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...