Scheletro del server per Ruby

Prerequisiti

Gem necessari per l'implementazione del server:

  • google-protobuf (3.2.X utilizzato in questo tutorial)
  • grpc (1.2.X utilizzato in questo tutorial)

Scarica la definizione del servizio e crea questa struttura di directory:

[base_dir]
├── certificates
├── lib
├── protos
    └── booking_service.proto
└── server.rb

Genera le librerie Ruby dalla descrizione dell'interfaccia:

$ cd [base_dir]
$ grpc_tools_ruby_protoc -I protos --ruby_out=lib --grpc_out=lib protos/booking_service.proto

Implementare il server

Se hai bisogno del codice di base, rivolgiti a un POC di Google.

Testa il server senza TLS

Per i test iniziali, TLS può essere disattivato:

$ cd [base_dir]
$ ruby server.rb --disable_tls

Non è adatto all'uso in produzione.

Configura i certificati di produzione

Per abilitare TLS sul server, sono necessari i seguenti file:

  • certificates/server.pem la catena di certificati per il server in formato PEM
  • certificates/server.key la chiave privata per la catena di certificati del server
  • certificates/trusted_client_roots.pem i certificati radice considerati attendibili durante l'autenticazione dei client

L'insieme di certificati radice client attendibili viene utilizzato per l'autenticazione del client. Puoi scegliere di ottenere questo insieme di certificati radice attendibili da un'autorità come Mozilla o installare l'insieme di certificati radice attualmente consigliato dall'autorità di internet di Google G2. In quest'ultimo caso, a volte potresti dover aggiornare manualmente il certificato principale.

Struttura della directory finale

[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