Requisitos previos
Gems necesarias para la implementación del servidor:
- google-protobuf (3.2.X se usa en este instructivo)
- grpc (1.2.X que se usa 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.
Prueba 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 producción.
Configura certificados de producción
Para habilitar TLS en el servidor, se requieren los siguientes archivos:
certificates/server.pem
es 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 utiliza cuando se autentica la 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 este último caso, es posible que debas actualizar de forma manual el certificado raíz a veces.
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