Ich versuche, das sichere Helloworld-Programm auszuführen, um die Unterstützung von TLS im GRPC-Code zu überprüfen. Ich bekomme diesen FehlerFehler in Grpc mit TLS-Unterstützung
E1228 23:15:44.054232298 10843 ssl_transport_security.cc:621] Invalid cert chain file.
E1228 23:15:44.054286682 10843 security_connector.cc:1108] Handshaker factory creation failed with TSI_INVALID_ARGUMENT.
E1228 23:15:44.054304555 10843 server_secure_chttp2.cc:83] {"created":"@1514520944.054294700","description":"Unable to create secure server with credentials of type Ssl.","file":"src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc","file_line":62,"security_status":1}
Server listening on localhost:50051
Segmentation fault (core dumped)
Folgendes ist mein Server-Code.
std::string server_address ("localhost:50051");
std::string key;
std::string cert;
std::string root;
read ("server.crt", cert);
read ("server.key", key);
read ("ca.crt", root);
ServerBuilder builder;
grpc::SslServerCredentialsOptions::PemKeyCertPair keycert =
{
key,
cert
};
grpc::SslServerCredentialsOptions sslOps;
sslOps.pem_root_certs = root;
sslOps.pem_key_cert_pairs.push_back (keycert);
builder.AddListeningPort(server_address, grpc::SslServerCredentials(sslOps));
GreeterServiceImpl service;
builder.RegisterService(&service);
std::unique_ptr <Server> server (builder.BuildAndStart());
std::cout << "Server listening on " << server_address << std::endl;
server->Wait();
Ich versuche nur, den Server zu betreiben. CLient ist noch nicht einmal auf dem Bild. Hier ist das Skript, das ich verwendet habe, um die Schlüssel zu generieren.
# Generate valid CA
openssl genrsa -passout pass:1234 -des3 -out ca.key 4096
openssl req -passin pass:1234 -new -x509 -days 365 -key ca.key -out ca.crt -subj "/C=CA/ST=Ontario/L=Ontario/O=Test/OU=Test/CN=Root CA"
# Generate valid Server Key/Cert
openssl genrsa -passout pass:1234 -des3 -out server.key 4096
openssl req -passin pass:1234 -new -key server.key -out server.csr -subj "/C=CA/ST=Ontario/L=Ontario/O=Test/OU=Server/CN=localhost"
openssl x509 -req -passin pass:1234 -days 365 -in server.csr -CA ca.crt -
CAkey ca.key -set_serial 01 -out server.crt
# Remove passphrase from the Server Key
openssl rsa -passin pass:1234 -in server.key -out server.key
# Generate valid Client Key/Cert
openssl genrsa -passout pass:1234 -des3 -out client.key 4096
openssl req -passin pass:1234 -new -key client.key -out client.csr -subj "/C=CA/ST=Ontario/L=Ontario/O=Test/OU=Client/CN=localhost"
openssl x509 -passin pass:1234 -req -days 365 -in client.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out client.crt
# Remove passphrase from Client Key
openssl rsa -passin pass:1234 -in client.key -out client.key
Jede Hilfe würde sehr geschätzt werden. Danke
Vielen Dank für Ihren ersten Beitrag und vielen Dank für die Aufnahme einer Codenummer. Sie können Ihre Antwort verbessern, indem Sie ihnen den relevantesten Code in Ihrer Antwort bereitstellen. –