为什么 Firefox 会在 Positivessl - Comodo 证书上警告我有关 HTTPs“不受信任”的连接?

为什么 Firefox 会在 Positivessl - Comodo 证书上警告我有关 HTTPs“不受信任”的连接?

对于我的新创业公司,我从 Comodo.com 获得了 SSL 证书。我完成了所有痛苦的过程,最终能够在我的 AWS 服务器上实现它(我正在运行 MEAN Stack)。现在,当有人使用 Firefox 访问我的网站时,会出现此错误:

技术细节

安全证书无效。

由于未提供颁发者链,因此证书不受信任。(错误代码:sec_error_unknown_issuer)

但显然我不希望我的用户收到该警告。

我认为服务器可能通过常规 http 传输一些文件,但我找不到任何非 https 内容,所以我想我可以解决该问题(也许不是)

这是我第一次使用 SSL 证书,也许我做错了。如果你能帮助我,那就太好了。谢谢

以下是图片:

在此处输入图片描述

http://www.evernote.com/shard/s111/sh/a4bd8f33-8dba-47ae-b6d9-d1793acb8c64/1682676a05ebebddb8ed14a112df9d94

答案1

虽然你做过安装 SSL 证书时,您没有包含构建信任路径所需的任何其他证书。请参阅https://www.ssllabs.com/ssltest/analyze.html?d=phrecordr.com

关于信任路径,SSL 客户端有一些存储的根证书。当你购买证书时C来自某些 CA,他们可能会使用一些中间证书(我们称之为)由根 CA 签名A. 如果您仅提供证书C那么他们将无法建立信任路径AC。要解决此问题,请附加证书到您的证书C

具体细节取决于您使用的 SSL 服务器,请查阅其文档以了解具体信息。

答案2

2014 年 6 月:

对于 NodeJS 和 ExpressJS

这是我使用的配置,经过几天的折腾后,它运行良好。我使用 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/

相关内容