我有一个仅使用 SSL 作为默认公共接口的后端服务器。此服务器在 443 上侦听 cert、key 和 ca 文件,ssl verify client 设置为 true。
在客户端,我有客户端证书、密钥和一个 ca 文件,该文件由 2 个 CA 文件(中间 CA、根 CA)组合在一个 ca.pem 文件中。当我在后端服务器上执行 curl 请求时,它工作正常。我还使用 gnutls-serv 和 openssl s_server 测试了服务器/客户端证书和密钥,以确保一切都有效。
但是当我在 Apigee(客户端证书和密钥文件 [pem 格式])和 trustore(ca.pem 文件)上创建密钥库时,出现错误:- target.name fsbca-test
- Properties - Expression ("fsbca-test " 等于 target.name)
- ExpressionResult true
- Tree TARGET_fsbca-test
- 错误服务暂时不可用 - error.cause 一般 SSLEngine 问题 - error.cause.cause 一般 SSLEngine 问题 - error.class com.apigee.messaging.adaptors.http .HttpAdaptorException - 状态 TARGET_REQ_FLOW - 类型 ErrorPoint
如果我在后端将 SSL 验证客户端设置为 false,则 Apigee 会正确转移请求并且我会收到响应。
如果我在目标端点属性中将 IgnoreValidationErrors 设置为 true,则请求将被转移到我的后端服务器,但我可以在服务器的日志中看到一个错误:“客户端在读取 c 时没有发送所需的 SSL 证书......”。
关于我正在做的事情可能有什么问题的任何想法?
附加轨道:这可能是 Apigee 方面的问题,CA 文件由 2 个证书组成(它可能会忽略 .pem 中的尾随证书)。如果想测试 pkcs12 和 jks 但我未能将它们上传到 Apigee(API 文档页面仅描述 .pem、JAR 和 cert 操作)。我用 pkcs12 密钥库和 jks trustore 编写了一个小型 Java 客户端,它在我的本地工作站上运行良好。
提前感谢您提供任何可以帮助我的信息。
问候
神父