Fastify在DreamHost WordPress站点8443端口HTTPS请求失败排查
问题诊断与解决
核心问题
你的Fastify初始化代码存在参数传递错误——Fastify构造函数仅接受单个配置对象,但你拆分传入了两个独立对象,导致https配置完全没被加载。这就造成8443端口实际运行的是HTTP服务,而非HTTPS服务,当你发送HTTPS请求时,双方协议不匹配,就会触发wrong version number错误。
修复后的正确配置
将logger和https配置合并到同一个对象中:
const fastify = require('fastify')({ logger: true, https: { key: fs.readFileSync(path.resolve(__dirname,'../../ssl/mykey.key')), cert: fs.readFileSync(path.resolve(__dirname,'../../ssl/mycert.cert')) } })
验证步骤
- 重启Fastify服务
- 重新执行
curl -k -v https://example.com:8443测试HTTPS请求 - 用
openssl s_client -connect example.com:8443检查,此时应该能正常获取到证书信息,握手流程也会完成
额外检查项
如果修复后仍有问题,可排查:
- 确认密钥和证书文件的路径正确,Fastify进程有读取权限
- 检查证书是否完整:DreamHost提供的证书可能包含中间链证书,若存在,需要在
https配置中添加ca字段,加载中间链文件 - 确保8443端口未被其他进程占用
内容的提问来源于stack exchange,提问作者user1207289
相关产品推荐
相关产品推荐

