7

nodejs バージョン: 0.8.6
次のコマンドで openssl を使用して ssl csr ファイルを作成しました: openssl req -nodes -newkey rsa:2048 -keyout myserver.key -out myserver.csr

  • csr コンテンツが SSL プロバイダーに送信され、証明書が返送されました。

今、私はSSLセキュアサーバーを作成したかった:

var fs = require("fs");
var https = require('https');
var credentials = {
            key: fs.readFileSync(options.base_project_folder + 'privatekey.pem'),
            cert: fs.readFileSync(options.base_project_folder + 'certificate.pem')
};
var server = https.createServer(credentials, app);
server.listen(port, address, function() {
    var addr = this.address();
    console.log('listening on %s:%d', addr.address, addr.port);
});

サーバーは実行中ですが、「SSL接続エラー」が表示されます

私が行った問題を確認しようとしています: openssl s_client -connect my_dns:443 // my_dns はもちろん私の nodejs サーバーを指しています

RESULT: CONNECTED(00000003) 139813382997664:error:140790E5:SSL ルーチン:SSL23_WRITE:ssl ハンドシェイクの失敗:s23_lib.c:177:
ピア証明書があり
ません クライアント証明書が送信されていません CA 名が送信されていません
SSL ハンドシェイクは 0 バイトを読み取り、226 バイトを書き込みました
新しい ( NONE)、Cipher is (NONE)
Secure Renegotiation IS NOT supported
圧縮: NONE
拡張: NONE

誰でも私を助けることができますか?SSLの闇の中で道に迷ってしまいました:(

4

3 に答える 3

8

次のように CA を追加してみてください。

var credentials = {
  key: fs.readFileSync(options.base_project_folder + 'privatekey.pem'),
  cert: fs.readFileSync(options.base_project_folder + 'certificate.pem'),
  ca: fs.readFileSync(/path/to/CA/cert)
};

ドキュメントによると、 options 引数はtls.createServerに似ています

于 2013-04-07T17:54:26.697 に答える
1

署名者にも CA 証明書を指定する必要があると思います。これは自己署名証明書ではないため、証明書を取得した場所からバンドルを受け取る必要があります。

役立つはずのいくつかのリンク: http://qugstart.com/blog/node-js/install-comodo-positivessl-certificate-with-node-js/ http://www.gettingcirrius.com/2012/06/securing -nodejs-and-express-with-ssl.html

于 2013-04-07T17:18:00.057 に答える