Ara*_*zer 5 ssl https node.js google-compute-engine google-cloud-platform
我正在尝试在Google的计算引擎(GCE)上设置Node.js服务器以使用HTTPS,但远程服务器在访问时似乎没有响应.https://...
我从Comodo获得了一个证书,将它放在后端,将其包含在代码中,并创建了一个HTTPS服务器,如下所示:
var app = express();
var https = require('https');
var fs = require('fs');
var options = {
key: fs.readFileSync('server.key'),
cert: fs.readFileSync('server.crt'),
};
...
https.createServer(options,app).listen('443',function(){
console.log('https ready')
});
Run Code Online (Sandbox Code Playgroud)
我还添加了以下防火墙规则:
gcloud compute firewall-rules create allow-https --description "https server" --allow tcp:443
--format json
Run Code Online (Sandbox Code Playgroud)
当我在本地计算机上运行服务器并尝试https://localhost:443通过Chrome 访问它时,我得到了预期的结果:
此服务器无法证明它是localhost; 其安全证书来自www.domain_name.com.这可能是由于配置错误或攻击者拦截您的连接造成的.
这意味着服务器已正确配置为能够识别https请求,但由于证书不属于localhost,因此会导致警告.
当我在与证书关联的域名上运行的GCE实例上运行相同的代码时,我得不到服务器的响应.此外,根据tcpdump存在的传入https正确的端口上的流量:
我跑netstat -ltnp了以下结果:
当我使用https上面显示的配置运行服务器时,没有443端口的记录.
当我http在端口8080上运行带有配置的服务器时,该端口有一条记录,一切正常.
当我使用http AND https配置(侦听端口8080和端口443)运行服务器时,两者都没有记录,并且根本没有来自服务器的响应...
我的问题是:如何让我的GCE实例响应https请求?我还应该做什么或测试什么?
| 归档时间: |
|
| 查看次数: |
1339 次 |
| 最近记录: |