Firefox и SSL: sec_error_unknown_issuer - PullRequest
       109

Firefox и SSL: sec_error_unknown_issuer

56 голосов
/ 09 ноября 2008

Мой клиент получает сообщение об ошибке sec_error_unknown_issuer при посещении https://mediant.ipmail.nl с Firefox. Я не могу воспроизвести ошибку сам. Я установил FF на Vista и XP, и у меня не было проблем. FF на Ubuntu тоже отлично работает.

Кто-нибудь получает такую ​​же ошибку, и у кого-нибудь есть подсказки для меня, чтобы я мог сказать своему провайдеру изменить некоторые настройки? Сертификат является так называемым SSL-сертификатом с подстановочными знаками, который работает для всех поддоменов (* .ipmail.nl). Я ошибся, выбрав самый дешевый?

Ответы [ 13 ]

41 голосов
/ 22 июня 2009

Просто была такая же проблема с сертификатом Comodo Wildcard SSL. После прочтения документации вы должны убедиться, что вы включили в цепочку файл цепочки сертификатов, т. Е.

SSLCertificateChainFile /etc/ssl/crt/yourSERVERNAME.ca-bundle

Полная информация о сайте Comodo

12 голосов
/ 28 октября 2009

У нас была эта проблема, и она была очень специфична для Firefox - можно было воспроизвести только в этом браузере, Safari, IE8, Chrome и т. Д. Были в порядке.

Требуется исправление Получение обновленного сертификата от Comodo и его установка.

Не знаю, какую магию они изменили, но это определенно было то, что Firefox НЕ понравилось.

6 голосов
/ 28 ноября 2013

Для nginx сделайте это Создайте цепочечный файл crt, используя

$ cat www.example.com.crt bundle.crt > www.example.com.chained.crt

Полученный файл следует использовать в директиве ssl_certificate:

server {
    listen              443 ssl;
    server_name         www.example.com;
    ssl_certificate     www.example.com.chained.crt;
    ssl_certificate_key www.example.com.key;
    ...
}
6 голосов
/ 12 декабря 2009

Firefox более строг, чем другие браузеры, и для него потребуется правильная установка промежуточного сертификата сервера. Это может быть предоставлено центром сертификации, у которого был приобретен сертификат. промежуточный сертификат обычно устанавливается в том же месте, что и серверный сертификат, и требует правильной записи в файле httpd.conf.

, хотя многие отчитывают Firefox за его (как правило) исключительную «пометку», на самом деле он демонстрирует более высокий уровень стандартов безопасности.

3 голосов
/ 14 июня 2014

Я знаю, что эта ветка немного старая, но мы тоже столкнулись с ней и заархивируем наше возможное решение здесь для других.

У нас была такая же проблема с сертификатом Comodo подстановочного знака "Positive SSL". Мы работаем на нашем веб-сайте, используя SSL-обратный прокси-сервер squid, и Firefox продолжит жаловаться на «sec_error_unknown_issuer», как вы сказали, но все остальные браузеры были в порядке.

Я обнаружил, что это проблема неполной цепочки сертификатов. Firefox, очевидно, не имеет встроенного промежуточного сертификата, хотя Firefox доверяет корневому CA. Поэтому вы должны предоставить всю цепочку сертификатов Firefox. Поддержка Comodo заявляет:

Промежуточным сертификатом является сертификат, или сертификаты, которые идут между вашим сайтом (сервером) сертификат и корневой сертификат. Промежуточный сертификат, или сертификаты, завершает цепочку к корневому сертификату, которому доверяют браузер.

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

Это уже было затронуто ранее в этой теме, но это не восстановило то, как вы это делаете.

Сначала вы должны создать цепочку сертификатов и сделать это с помощью вашего любимого текстового редактора и просто вставить их в правильном (обратном) порядке, т.е.

  • Промежуточный сертификат CA 2 - IntermediateCA2.crt - поверх файл
  • Промежуточный сертификат CA 1 - IntermediateCA1.crt
  • Сертификат Root CA - root.crt - в конце файла

Точный порядок, который вы можете получить у вашего провайдера ssl, если это не очевидно из названий.

Затем сохраните файл под любым именем. Например. имя_домен-цепь bundle.crt

В этом примере я не включил действительный сертификат домена и до тех пор, пока ваш сервер может быть настроен на получение отдельного связанного пакета сертификатов, это то, что вы используете.

Больше информации можно найти здесь:

https://support.comodo.com/index.php?/Knowledgebase/Article/View/643/0/how-do-i-make-my-own-bundle-file-from-crt-files

Если по какой-то причине вы не можете настроить свой сервер на использование отдельного связанного пакета, то просто вставьте сертификат сервера в начало (вверху) пакета и используйте полученный файл в качестве сертификата сервера. Это то, что нужно сделать в случае E.g Squid. Смотрите ниже список рассылки squid на эту тему.

http://www.squid -cache.org / почте архив / кальмар пользователи / 201109 / 0037.html

Это решило это для нас.

2 голосов
/ 03 декабря 2009

У меня была эта проблема с Firefox и моим сервером. Я связался со службой поддержки GoDaddy, и они попросили меня установить промежуточный сертификат сервера:

http://support.godaddy.com/help/article/868/what-is-an-intermediate-certificate

После перезапуска службы World Wide Web Publishing все заработало отлично.

Если у вас нет полного доступа к вашему серверу, ваш Интернет-провайдер должен сделать это за вас.

2 голосов
/ 09 ноября 2008

Какую версию Firefox на какой платформе использует ваш клиент?

Люди, имеющие ту же проблему, что и задокументированная здесь, на форуме поддержки Firefox . Я надеюсь, что вы можете найти решение там. Удачи!

Обновление:

Пусть ваш клиент проверит настройки в Firefox: в «Advanced» - «Encryption» есть кнопка «View Certificates». Найдите «Comodo CA Limited» в списке. Я видел, что Comodo является эмитентом сертификата этого доменного имени / сервера. На двух моих машинах (FF 3.0.3 в Vista и Mac) запись находится в списке (по умолчанию / Mozilla).

alt text

1 голос
/ 15 июня 2014

Июнь 2014:

Это конфигурация, которую я использовал, и она работает нормально после того, как несколько дней билась головой об стену Я использую Express 3.4 (я думаю, что то же самое для Express 4.0)

var privateKey  = fs.readFileSync('helpers/sslcert/key.pem', 'utf8');
var certificate = fs.readFileSync('helpers/sslcert/csr.pem', 'utf8');

files = ["COMODORSADomainValidationSecureServerCA.crt",
         "COMODORSAAddTrustCA.crt",
         "AddTrustExternalCARoot.crt"
        ];

ca = (function() {
  var _i, _len, _results;

  _results = [];
  for (_i = 0, _len = files.length; _i < _len; _i++) {
    file = files[_i];
    _results.push(fs.readFileSync("helpers/sslcert/" + file));
  }
  return _results;
})();

var credentials = {ca:ca, key: privateKey, cert: certificate};

// process.env.PORT : Heroku Config environment
var port = process.env.PORT || 4000;

var app = express();
var server = http.createServer(app).listen(port, function() {
        console.log('Express HTTP server listening on port ' + server.address().port);
});
https.createServer(credentials, app).listen(3000, function() {
        console.log('Express HTTPS server listening on port ' + server.address().port);
});

// redirect all http requests to https
app.use(function(req, res, next) {
  if(!req.secure) {
    return res.redirect(['https://mydomain.com', req.url].join(''));
  }
  next();
});

Затем я перенаправил порты 80 и 443:

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 4000
sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 3000

Как вы можете видеть после проверки моих сертификатов, у меня 4 [0,1,2,3]:

openssl s_client -connect mydomain.com:443 -showcerts | grep "^"

ubuntu@ip-172-31-5-134:~$ openssl s_client -connect mydomain.com:443 -showcerts | grep "^ "
depth=3 C = SE, O = AddTrust AB, OU = AddTrust External TTP Network, CN = AddTrust External CA Root
verify error:num=19:self signed certificate in certificate chain
verify return:0
 0 s:/OU=Domain Control Validated/OU=PositiveSSL/CN=mydomain.com
   i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CA
 1 s:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CA
   i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority
 2 s:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority
   i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
 3 s:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
   i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
    Protocol  : TLSv1.1
    Cipher    : AES256-SHA
    Session-ID: 8FDEAEE92ED20742.....3E7D80F93226142DD
    Session-ID-ctx:
    Master-Key: C9E4AB966E41A85EEB7....4D73C67088E1503C52A9353C8584E94
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 300 (seconds)
    TLS session ticket:
    0000 - 7c c8 36 80 95 4d 4c 47-d8 e3 ca 2e 70 a5 8f ac   |.6..MLG....p...
    0010 - 90 bd 4a 26 ef f7 d6 bc-4a b3 dd 8f f6 13 53 e9   ..J&..........S.
    0020 - f7 49 c6 48 44 26 8d ab-a8 72 29 c8 15 73 f5 79   .I.HD&.......s.y
    0030 - ca 79 6a ed f6 b1 7f 8a-d2 68 0a 52 03 c5 84 32   .yj........R...2
    0040 - be c5 c8 12 d8 f4 36 fa-28 4f 0e 00 eb d1 04 ce   ........(.......
    0050 - a7 2b d2 73 df a1 8b 83-23 a6 f7 ef 6e 9e c4 4c   .+.s...........L
    0060 - 50 22 60 e8 93 cc d8 ee-42 22 56 a7 10 7b db 1e   P"`.....B.V..{..
    0070 - 0a ad 4a 91 a4 68 7a b0-9e 34 01 ec b8 7b b2 2f   ..J......4...{./
    0080 - e8 33 f5 a9 48 11 36 f8-69 a6 7a a6 22 52 b1 da   .3..H...i....R..
    0090 - 51 18 ed c4 d9 3d c4 cc-5b d7 ff 92 4e 91 02 9e   .....=......N...
    Start Time: 140...549
    Timeout   : 300 (sec)
    Verify return code: 19 (self signed certificate in certificate chain)

Удачи! PD: если вы хотите больше ответов, пожалуйста, проверьте: http://www.benjiegillam.com/2012/06/node-dot-js-ssl-certificate-chain/

1 голос
/ 15 мая 2014

Если вы получили свой сертификат от COMODO, вам нужно добавить в этой строке файл находится в полученном вами ZIP-файле.

SSLCertificateChainFile /path/COMODORSADomainValidationSecureServerCA.crt
1 голос
/ 06 февраля 2013

Как сказал @ user126810, проблему можно исправить с помощью правильной директивы SSLCertificateChainFile в файле конфигурации.

Но после исправления конфигурации и перезапуска веб-сервера мне также пришлось перезапустить Firefox . Без этого Firefox продолжал жаловаться на плохой сертификат (похоже, он использовал кэшированный).

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