Что такое grpc C ++ эквивалент Java InsecureTrustManagerFactory?
GrpcSslContexts.forClient (). TrustManager (InsecureTrustManagerFactory.INSTANCE) .build ()
небезопасный TrustManagerFactory, который доверяет всем сертификатам X.509 без какой-либо проверки.
Другими словами - в Java я создаю сервер (private.key + certificate.pem, подписанный rootCA) и клиент, который создает зашифрованный SSL-канал, при котором сервер принимает сертификат сервера без проверки (rootCA.pem недоступен для клиент). Технически это не рекомендуется, но я использую его только для тестирования. Мне нужно сделать то же самое для моей C ++ версии пары сервер-клиент. Пока что моему клиенту на C ++ нужен rootCA.pem через SslCredentialsOptions:
grpc::SslCredentialsOptions sslChannelOptions;
sslChannelOptions.pem_root_certs = "rootCA.pem";
sslChannelOptions.pem_cert_chain = "";
sslChannelOptions.pem_private_key = "";
return grpc::SslCredentials( sslChannelOptions );
или через
gpr_setenv ("GRPC_DEFAULT_SSL_ROOTS_FILE_PATH", "roots.pem")
В противном случае я получаю:
ssl_transport_security.c: 921] Сбой рукопожатия с фатальной ошибкой SSL_ERROR_SSL: ошибка: 0400006b: процедуры RSA: OPENSSL_internal: BLOCK_TYPE_IS_NOT_01.