Server-Skelett für Ruby

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-Format
  • certificates/server.key den privaten Schlüssel für die Serverzertifikatskette
  • certificates/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