기본 요건
서버 구현에 필요한 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