前提条件
サーバーの実装に必要な 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