前提条件
服务器实现所需的 Gem:
- google-protobuf(本教程中使用的是 3.2.X)
- grpc(本教程中使用的是 1.2.X)
下载服务定义,然后创建以下目录结构:
[base_dir]
├── certificates
├── lib
├── protos
└── booking_service.proto
└── server.rb
根据接口说明生成 Ruby 库:
$ cd [base_dir]
$ grpc_tools_ruby_protoc -I protos --ruby_out=lib --grpc_out=lib protos/booking_service.proto
实现服务器
如果您需要框架代码,请咨询 Google 联系人。
在不使用 TLS 的情况下测试服务器
对于初始测试,可以停用 TLS:
$ cd [base_dir]
$ ruby server.rb --disable_tls
这不适合用于生产环境!
配置正式版证书
如需在服务器上启用 TLS,需要以下文件:
certificates/server.pem
服务器的证书链(采用 PEM 格式)certificates/server.key
服务器证书链的私钥certificates/trusted_client_roots.pem
在对客户端进行身份验证时信任的根证书
在对客户端进行身份验证时,会使用一组可信客户端根证书。您可以选择从 Mozilla 等权威机构获取这组受信任的根证书,也可以安装 Google Internet Authority G2 目前推荐的一组根证书。在后一种情况下,您有时可能需要手动更新根证书。
最终目录结构
[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