У меня есть сервер SSL в Express, который не работает во всех браузерах (если только пользователь не доверяет веб-сайту), поскольку некоторым браузерам требуется сертификат цепи (у нас есть собственный промежуточный сертификат). Я поместил наш промежуточный и цепной сертификат в один .crt-файл. Цепь + промежуточный сертификат находится в переменной INT_CERT_FILE
. Кажется, это не работает. Я использую http://www.digicert.com/help, а также работает openssl s_client -connect tasker.adnxs.net:443 -showcerts | grep "^ "
, чтобы проверить, но, похоже, он не возвращает сертификат промежуточной + цепи.Node.js/Express.js Chain Certificate Не работает
Вот как я устанавливаю его:
var fs = require("fs");
var https = require("https");
var express = require("express");
var KEY_FILE = fs.readFileSync("path/to/key/file.key");
var CERT_FILE = fs.readFileSync("path/to/crt/file.crt);
var INT_CERT_FILE = fs.readFileSync("path/to/intermediate and chain crt.crt");
var _app_https = express();
var _server_https = null;
_server_https = https.createServer({
key: KEY_FILE,
cert: CERT_FILE,
ca: INT_CERT_FILE
}, _app_https).listen(443);
При посещении его на Firefox, Firefox не признает свою идентичность и требует, чтобы вручную доверять. Как я могу исправить эту проблему?
Thanks,
я использовал. toString() после readFileSync (...) –
Все еще не работает. http://www.digicert.com/help/ говорит, что сертификаты не найдены. – darksky