2

GoDaddy 標準 SSL 証明書を購入し、 http://mysite.comにインストールしました。https://mysite.comが正常に動作するようになりました。

ここで、http://mysite.com:3000 で実行されている socket.io の証明書をインストールします

次のようにしてSSLに接続しようとしました:

var socket = io.connect('https://www.mysite.com:3000', {secure:true}); 

しかし、それは機能していません。ここにserver.jsがあります

var io = require('socket.io'), 
    connect = require('connect'), 
    mysql = require('mysql');

var app = connect().use(connect.static('../public_html/node/'));
app.listen(3000);
var server = io.listen(app);
server.sockets.on('connection', function(socket) { 
     socket.emit('getid', {message: "A New user is online"});
}

およびクライアント index.html

<script type = "text/javascript" src = "http://www.mysite.com:3000/socket.io/socket.io.js"></script>

<script type = "text/javascript">
var socket = io.connect('http://www.mysite.com:3000'); 
</script>

助言がありますか?

4

1 に答える 1

4

クライアントが に接続しています。httpクライアントの index.html を に接続してみてくださいhttps

さらに、証明書をロードする必要があります。

const crypto = require('crypto'),
  fs = require("fs"),
  http = require("http");

var privateKey = fs.readFileSync('privatekey.pem').toString();
var certificate = fs.readFileSync('certificate.pem').toString();

var credentials = crypto.createCredentials({key: privateKey, cert: certificate});

var handler = function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
};

var server = http.createServer();
server.setSecure(credentials);
server.addListener("request", handler);
server.listen(8000);

自己署名.pemファイルを作成します。(ボーナスポイントについて.csrは、評判の良い会社のサインをもらってください。)

openssl genrsa -out privatekey.pem 2048 
openssl req -new -key privatekey.pem -out certrequest.csr 
openssl x509 -req -in certrequest.csr -signkey privatekey.pem -out certificate.pem
于 2013-03-09T17:05:00.257 に答える