【发布时间】:2016-01-31 03:06:11
【问题描述】:
我有一个使用express 使用https 运行的API。对于测试,我一直在使用 tinycert.org 来获取证书,这在我的机器上运行良好。
我使用docker 打包应用程序,并使用docker-machine 和docker-compose 在数字海洋服务器上运行它。
当我尝试连接 Chrome 时,我收到ERR_SSL_VERSION_OR_CIPHER_MISMATCH。使用curl 运行此程序时,我遇到握手失败:curl: (35) SSL peer handshake failed, the server most likely requires a client certificate to connect。
我尝试使用 Wireshark 的 SSL 解析器进行调试,但它没有给我更多信息:我可以看到“Client Hello”,然后下一帧是“Handshake Failure (40)”。
我认为 docker 容器上的节点可能没有可用的密码,但它有一个巨大的列表,所以不可能是这样。我不确定发生了什么以及如何补救。
编辑
这是我的createServer() 块:
let app = express();
let httpsOpts = {
key: fs.readFileSync("./secure/key.pem"),
cert: fs.readFileSync("./secure/cert.pem")
};
let port = 8080;
https.createServer(httpsOpts, app).listen(port);
【问题讨论】:
-
您好!你能粘贴你的 https.createServer() 行吗?
-
顺便说一句,我尝试在笔记本电脑的虚拟机中运行我的整个设置,它也可以在那里运行。
-
不知道会不会和这个stackoverflow.com/questions/21767003/…有关
-
嘿,你有想过这个吗?我也遇到了同样的情况,谢谢
-
@JaredWilkin 恐怕我没有。不确定我到底做了什么来解决它,但我有一段时间没有看到这个问题了。抱歉没有更多用处!
标签: node.js ssl docker wireshark handshake