我目前正在使用以下提供商选项测试我的协议合同
let opts = {
provider: "api",
providerBaseUrl: "https://my-domain.com",
pactUrls: [
path.resolve(
process.cwd(),
"./pacts/pact-api.json"
),
],
validateSSL: false,
changeOrigin: true,
providerVersion: "1.0.0"
}
return new Verifier(opts).verifyProvider().then(output => {
console.log("Pact Verification Complete!")
console.log(output)
})
当我给出基本网址时,https
我收到以下错误:
Uncaught Error: write EPROTO 140574248376192:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:../deps/openssl/openssl/ssl/record/ssl3_record.c:332:
at WriteWrap.onWriteComplete [as oncomplete] (internal/stream_base_commons.js:92:16)
如果我更改 urlhttp:
让它进行重定向(我得到重定向状态代码 308)。
https url 是一个自签名的 url,自签名证书存在于我们所有的服务器中。我从任何浏览器或 curl 或通过 express.js 访问 url 都没有问题。
但是,如果我直接在提供程序选项中提供 url,我会收到错误消息。我浏览了协议文档,但找不到任何其他论据。
非常感谢您为克服此问题提供的任何帮助。
谢谢。
更新:问题是在 docker 容器内运行协议。来自容器的请求被内部代理阻止。一旦代理被绕过,它就起作用了。