Esqueleto de servidor para Ruby

Requisitos previos

Gemas necesarias para la implementación del servidor:

  • google-protobuf (se usa la versión 3.2.X en este instructivo)
  • gRPC (se usa la versión 1.2.X en este instructivo)

Descarga la definición del servicio y crea esta estructura de directorios:

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

Genera bibliotecas de Ruby a partir de la descripción de la interfaz:

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

Implementa el servidor

Si necesitas el código de esqueleto, comunícate con un POC de Google.

Cómo probar el servidor sin TLS

Para las pruebas iniciales, se puede inhabilitar TLS:

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

Esto no es adecuado para su uso en producción.

Configura certificados de producción

Para habilitar TLS en el servidor, se requieren los siguientes archivos:

  • certificates/server.pem la cadena de certificados del servidor en formato PEM
  • certificates/server.key es la clave privada de la cadena de certificados del servidor.
  • certificates/trusted_client_roots.pem los certificados raíz en los que se confía cuando se autentican los clientes

El conjunto de certificados raíz de cliente de confianza se usa cuando se autentica el cliente. Puedes obtener este conjunto de raíces de confianza de una autoridad como Mozilla o instalar el conjunto de raíces que recomienda actualmente la Autoridad de Internet de Google G2. En el último caso, es posible que debas actualizar el certificado raíz de forma manual en ocasiones.

Estructura de directorio final

[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