Szkielet serwera dla Ruby

Wymagania wstępne

Gemy wymagane do implementacji po stronie serwera:

  • google-protobuf (w tym samouczku używana wersja 3.2.X)
  • grpc (w tym samouczku używana jest wersja 1.2.X)

Pobierz definicję usługi i utwórz tę strukturę katalogów:

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

Generowanie bibliotek Ruby na podstawie opisu interfejsu:

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

Wdrażanie serwera

Jeśli potrzebujesz kodu szkieletu, poproś o pomoc osobę kontaktową ds. współpracy z Google.

Testowanie serwera bez TLS

Na potrzeby wstępnego testowania można wyłączyć TLS:

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

Nie nadaje się do użytku produkcyjnego.

Konfigurowanie certyfikatów produkcyjnych

Aby włączyć TLS na serwerze, wymagane są te pliki:

  • certificates/server.pem łańcuch certyfikatów serwera w formacie PEM
  • certificates/server.key klucz prywatny łańcucha certyfikatów serwera.
  • certificates/trusted_client_roots.pem certyfikaty główne, które są zaufane podczas uwierzytelniania klientów

Zestaw zaufanych certyfikatów głównych klienta jest używany podczas uwierzytelniania klienta. Możesz pobrać ten zestaw zaufanych źródeł od urzędu certyfikacji, takiego jak Mozilla, lub zainstalować zbiór źródeł zalecany obecnie przez Google Internet Authority G2. W tym drugim przypadku czasami konieczne może być ręczne aktualizowanie certyfikatu głównego.

Ostateczna struktura katalogów

[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