我正在尝试从已发行OpenSSL自签名证书的gRPC Java服务器获取数据。我正在尝试将其用于双向TLS,但是握手提示
时出现错误E0731 15:41:27.621060000 6188068864 ssl_transport_security.cc:1239] Handshake failed with fatal error SSL_ERROR_SSL: error:1000007d:SSL routines:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED.
我的使用方式如下:
if let filepath = Bundle.main.path(forResource: "st", ofType: "crt") {
do {
let contents = try String(contentsOfFile: filepath)
let arguments: [Channel.Argument] = [.sslTargetNameOverride("staging.mydomain.com")]
self.client = Com_Domain_Data_EnergyUsageServiceServiceClient(address: "staging.mydomain.com:6001", certificates: contents,arguments: arguments)
} catch {
}
} else {
}
我如何使其起作用?但是,这不是纯粹的相互TLS。我们将使用服务器公共证书运送我们的应用程序。但是问题可能是BoringSSL不信任CA。如何使SwiftGRPC忽略证书验证?