FirefoxがPositivessl-Comodo証明書でHTTPの「信頼できない」接続について警告する理由


2

新しいスタートアップでは、Comodo.comからSSL証明書を取得しました。痛みを伴うプロセスをすべて実行し、最終的にAWSサーバーに実装できました(MEAN Stackを実行しています)。Firefoxを使用して誰かが私のWebサイトにアクセスすると、このエラーが発生します。

技術的な詳細

無効なセキュリティ証明書。

発行者チェーンが提供されていないため、証明書は信頼されていません。(エラーコード: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クライアントにはいくつかのルート証明書が保存されています。あるCAから証明書Cを購入する場合、ルートCA Aによって署名された中間証明書(これをBと呼びましょう)を使用する場合があります。証明書Cのみをクライアントに提供すると、クライアントはAからCへの信頼パスを確立できなくなります。これを修正するには、証明書Bを証明書Cに追加します。

正確な詳細は、使用しているSSLサーバーによって異なります。詳細については、ドキュメントを参照してください。


@Lekensteyに感謝します。PositiveSSLからこれらのファイルを受け取りました:mydomain_com.ca-bundleおよびmydomain_com.crt。NodeJS / ExpressJSを使用しています。ドキュメントを見てみましたが、私は専門家ではなく、苦労しています。何を変更すればよいですか? http://nodejs.org/api/https.html#https_server_listen_handle_callback。これは私のNodeJSコードですvar credentials = {key: privateKey, cert: certificate, pfx:authorityChain.ca-bundle};
リト

@lito私が間違っていない場合は、両方ではなく、+ cert または pfxをキー入力する必要があります。pfxキーと証明書が連結された単一のファイル()がある場合は、そのファイルにCAバンドルを追加する必要があります。それ以外の場合は、ファイルを証明書に追加します。とにかくキーと証明書を別々にしておくことをお勧めします。そうすれば、キーに非常に厳しい許可を設定できます。
Lekensteyn

caフィールドに供給するのがおそらく最も簡単です: `var options = {key:fs.readFileSync(key)、cert:fs.readFileSync(cert)、ca:fs.readFileSync(chainCert)};` caは配列にもできます複数の証明書がある場合。
デビッドライス14年

0

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/


1
ルートCAは含めないでください。それは役に立たず(信頼パスの構築に役立ちません)、初期ハンドシェイクサイズを拡大します。上記でリンクしたssllabsツールを使用してセットアップをテストしてください。
Lekensteyn
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.