SSL 연결 사용#

이 가이드에서는 SSL을 지원하는 보안 Flower 서버(SuperLink)를 시작하는 방법과 Flower 클라이언트(SuperNode)가 이 서버에 보안 연결을 설정하는 방법을 설명합니다.

보안 연결을 보여주는 전체 코드 예제는 ‘여기 <https://github.com/adap/flower/tree/main/examples/advanced-tensorflow>`_’에서 확인할 수 있습니다.

코드 예제에는 시작 방법을 설명하는 README.md 파일이 함께 제공됩니다. 이미 SSL을 사용하도록 설정되어 있지만 그 방법에 대한 설명이 부족할 수 있습니다. 이 가이드를 참고하여 이 주제에 대해 자세히 알아보세요.

인증서#

SSL 사용 연결을 사용하려면 서버와 클라이언트에 인증서를 전달해야 합니다. 이 가이드에서는 자체 서명된 인증서를 생성하겠습니다. 이 과정은 상당히 복잡할 수 있으므로 다음 명령 시퀀스를 사용하여 :code:`examples/advanced-tensorflow/certificates/generate.sh`에서 스크립트를 실행하도록 요청하겠습니다:

cd examples/advanced-tensorflow/certificates
./generate.sh

이렇게 하면 :code:`examples/advanced-tensorflow/.cache/certificates`에 인증서가 생성됩니다.

이 예의 맥락에서 SSL 인증서를 생성하는 접근 방식은 영감과 출발점이 될 수 있지만 프로덕션 환경에 대한 참조로 사용해서는 안 됩니다. 프로덕션 환경용 인증서를 올바르게 생성하는 문제에 대해서는 다른 출처를 참조하세요. 중요하지 않은 프로토타이핑 또는 연구 프로젝트의 경우, 이 가이드에 언급된 스크립트를 사용하여 생성한 자체 서명 인증서를 사용하는 것으로 충분할 수 있습니다.

클라이언트(SuperNode)#

다음 터미널 명령을 사용하여 이전에 생성한 인증서를 사용하는 클라이언트(SuperNode)를 시작합니다:

flower-supernode
     --root-certificates certificates/ca.crt
     --superlink 127.0.0.1:9092

코드:`root_certificates`를 설정하면 클라이언트는 PEM 인코딩된 루트 인증서의 파일 경로를 예상합니다.

결론#

이제 주어진 스크립트를 사용하여 자체 서명 인증서를 생성하고, SSL 사용 서버를 시작하고, 클라이언트가 보안 연결을 설정하는 방법을 배웠을 것입니다.

추가 리소스#

인증서에 대해 더 자세히 알아보고 싶다면 이러한 추가 자료를 참고하세요: