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 PEMcertificates/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