Vorbereitung
Für die Serverimplementierung erforderliche Gems:
- google-protobuf (in dieser Anleitung wird 3.2.X verwendet)
- grpc (in dieser Anleitung wird 1.2.X verwendet)
Laden Sie die Dienstdefinition herunter und erstellen Sie diese Verzeichnisstruktur:
[base_dir]
├── certificates
├── lib
├── protos
└── booking_service.proto
└── server.rb
Ruby-Bibliotheken aus der Benutzeroberflächenbeschreibung generieren:
$ cd [base_dir]
$ grpc_tools_ruby_protoc -I protos --ruby_out=lib --grpc_out=lib protos/booking_service.proto
Server implementieren
Wenn du den Skeletal-Code benötigst, wende dich an einen Google-POC.
Server ohne TLS testen
Für die ersten Tests kann TLS deaktiviert werden:
$ cd [base_dir]
$ ruby server.rb --disable_tls
Dies ist für die Produktion nicht geeignet.
Produktionszertifikate konfigurieren
Um TLS auf dem Server zu aktivieren, sind die folgenden Dateien erforderlich:
certificates/server.pem
die Zertifikatskette für den Server im PEM-Formatcertificates/server.key
den privaten Schlüssel für die Serverzertifikatskettecertificates/trusted_client_roots.pem
die Root-Zertifikate, die bei der Authentifizierung von Clients als vertrauenswürdig eingestuft werden
Die vertrauenswürdigen Client-Root-Zertifikate werden bei der Authentifizierung des Clients verwendet. Sie können diese vertrauenswürdigen Stammzertifikate von einer Zertifizierungsstelle wie Mozilla beziehen oder die derzeit von der Google Internet Authority G2 empfohlenen Stammzertifikate installieren. In letzterem Fall müssen Sie das Root-Zertifikat möglicherweise manuell aktualisieren.
Endgültige Verzeichnisstruktur
[base_dir]
├── certificates
├── server.pem
├── server.key
└── trusted_client_roots.pem
├── lib
├── booking_service_pb.rb
└── booking_service_services_pb.rb
├── protos
└── booking_service.proto
└── server.rb