微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

node.js – 在节点服务器上安装SSL证书

我创建了一个自签名证书,并将其安装在apache以及node.js(端口3000)上.在localhost上,https:// localhost和https:// localhost:3000都运行良好.

因此,我购买了GoDaddy Standard SSL证书并将其安装在服务器上(http://gatherify.com).现在https://gatherify.com运行良好,但节点上的ssl无效.
当我访问https://gatherify.com:3000时,我得到“连接被中断”.

我执行curl:

root@host [~]# curl -v -s -k https://gatherify.com:3000
* About to connect() to gatherify.com port 3000 (#0)
*   Trying 108.160.156.123... connected
* Connected to gatherify.com (108.160.156.123) port 3000 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* warning: ignoring value of ssl.verifyhost
* NSS error -5938
* Closing connection #0
* SSL connect error

有什么建议来解决这个问题

UPDATE
*服务器端 :*

var io = require('socket.io'),connect = require('connect'),fs = require('fs'),var privateKey = fs.readFileSync('cert/server.key').toString();
var certificate = fs.readFileSync('cert/server.crt').toString();

var options = { 
    key: privateKey,cert: certificate
};

var app = connect(options).use(connect.static('../htdocs/node/'));
app.listen(3000);
var server = io.listen(app);

server.sockets.on('connection',function(socket) { 
console.log("Connected");
});

客户端:

<html> <head>

<script type = "text/javascript" src = "https://gatherify.com:3000/socket.io/socket.io.js"></script>

<script type = "text/javascript">

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

</script>

</head><body></body></html>

解决方法

如果要使用(后面)HTTPS在端口3000上运行node.js应用程序,则需要在端口443上设置代理服务以将HTTPS请求代理到端口3000.

你没有提到你现在在端口443上运行的服务器(是Apache吗?)但你可能想要

>将该服务移动到新端口(例如4000),然后在处理HTTPS的端口443上运行node http proxy.
>然后为您在端口3000上运行的node.js应用程序设置子域(例如blah.gatherify.com).
>然后,使用node http proxy,您将代理所有对“gatherify.com”发送到端口4000的请求,以及对“blah.gatherify.com”发送到端口3000的所有请求.

当所有设置正确后,用户可以访问“https://gatherify.com”或“https://blah.gatherify.com”(不使用:端口号),并且所有内容都使用SSL保护.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐