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 PEMcertificates/server.key
la chiave privata per la catena di certificati del servercertificates/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