Pré-requisitos
Gems necessárias para a implementação do servidor:
- google-protobuf (3.2.X usado neste tutorial)
- gRPC (1.2.X usado neste tutorial)
Faça o download da definição do serviço e crie esta estrutura de diretório:
[base_dir]
├── certificates
├── lib
├── protos
└── booking_service.proto
└── server.rb
Gere bibliotecas Ruby com base na descrição da interface:
$ cd [base_dir]
$ grpc_tools_ruby_protoc -I protos --ruby_out=lib --grpc_out=lib protos/booking_service.proto
Implementar o servidor
Se você precisar do código de esqueleto, peça a um POC do Google.
Testar o servidor sem TLS
Para testes iniciais, o TLS pode ser desativado:
$ cd [base_dir]
$ ruby server.rb --disable_tls
Ele não é adequado para uso em produção.
Configurar certificados de produção
Para ativar o TLS no servidor, os seguintes arquivos são necessários:
certificates/server.pem
a cadeia de certificados do servidor no formato PEMcertificates/server.key
a chave privada da cadeia de certificados do servidorcertificates/trusted_client_roots.pem
os certificados raiz confiáveis ao autenticar clientes
O conjunto de certificados raiz de cliente confiáveis é usado para autenticar o cliente. Você pode escolher receber esse conjunto de raízes confiáveis de uma autoridade como a Mozilla ou instalar o conjunto de raízes atualmente recomendado pelo Google Internet Authority G2. No segundo caso, talvez seja necessário atualizar manualmente o certificado raiz.
Estrutura de diretório 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