5장. 브로커 보안
5.1. 연결 보안
브로커가 메시징 클라이언트에 연결되거나 브로커가 다른 브로커에 연결되어 있으면 TLS(Transport Layer Security)를 사용하여 이러한 연결을 보호할 수 있습니다.
다음 두 가지 TLS 구성을 사용할 수 있습니다.
- 브로커만 인증서를 제공하는 단방향 TLS입니다. 가장 일반적인 구성입니다.
- 브로커와 클라이언트(또는 다른 브로커) 둘 다 인증서를 제공하는 양방향(또는 상호 상호) TLS입니다.
이 섹션의 절차에서는 단방향 및 양방향 TLS를 모두 구성하는 방법을 보여줍니다.
5.1.1. 단방향 TLS 구성
다음 절차에서는 단방향 TLS에 대해 지정된 어셉터를 구성하는 방법을 보여줍니다.
-
<
;broker_instance_dir> /etc/broker.xml
구성 파일을 엽니다. 지정된 acceptor에
sslEnabled
키를 추가하고 값을true
로 설정합니다. 또한keyStorePath
및keyStorePassword
키를 추가합니다. 브로커 키 저장소에 해당하는 값을 설정합니다. 예를 들면 다음과 같습니다.<acceptor name="artemis">tcp://0.0.0.0:61616?sslEnabled=true;keyStorePath=../etc/broker.keystore;keyStorePassword=1234!</acceptor>
5.1.2. 양방향 TLS 구성
다음 절차에서는 양방향 TLS를 구성하는 방법을 보여줍니다.
사전 요구 사항
- 단방향 TLS에 대해 지정된 어셉터가 이미 구성되어 있어야 합니다. 자세한 내용은 5.1.1절. “단방향 TLS 구성”의 내용을 참조하십시오.
절차
-
<
;broker_instance_dir> /etc/broker.xml
구성 파일을 엽니다. 이전에 단방향 TLS용으로 구성한 acceptor의 경우
needClientAuth
키를 추가합니다. 값을true
로 설정합니다. 예를 들면 다음과 같습니다.<acceptor name="artemis">tcp://0.0.0.0:61616?sslEnabled=true;keyStorePath=../etc/broker.keystore;keyStorePassword=1234!;needClientAuth=true</acceptor>
이전 단계의 구성은 클라이언트의 인증서가 신뢰할 수 있는 공급자가 서명했다고 가정합니다. 클라이언트의 인증서가 신뢰할 수 있는 공급자(예: 자체 서명)에서 서명 하지 않은 경우 브로커는 클라이언트의 인증서를 신뢰 저장소로 가져와야 합니다. 이 경우
trustStorePath
및trustStorePassword
키를 추가합니다. 브로커 신뢰 저장소에 해당하는 값을 설정합니다. 예를 들면 다음과 같습니다.<acceptor name="artemis">tcp://0.0.0.0:61616?sslEnabled=true;keyStorePath=../etc/broker.keystore;keyStorePassword=1234!;needClientAuth=true;trustStorePath=../etc/client.truststore;trustStorePassword=5678!</acceptor>
AMQ Broker는 여러 프로토콜을 지원하며 각 프로토콜 및 플랫폼은 TLS 매개변수를 지정하는 다양한 방법이 있습니다. 그러나 Core Protocol( 브리지)를 사용하는 클라이언트의 경우 TLS 매개 변수는 브로커의 수락기와 유사하게 커넥터 URL에 구성됩니다.
5.1.3. TLS 구성 옵션
다음 표는 사용 가능한 모든 TLS 구성 옵션을 보여줍니다.
옵션 | 참고 |
---|---|
|
연결에 SSL이 활성화되어 있는지 여부를 지정합니다. TLS를 활성화하려면 |
| 어셉터에 사용되는 경우: 브로커 인증서를 보유한 브로커의 TLS 키 저장소에 대한 경로(자 자체 서명 또는 기관의 서명 여부)입니다.
커넥터에 사용되는 경우: 클라이언트 인증서를 보유한 클라이언트의 TLS 키 저장소에 대한 경로입니다. 이는 양방향 TLS를 사용하는 경우에만 커넥터와 관련이 있습니다. 브로커에서 이 값을 구성할 수 있지만 클라이언트가 다운로드하여 사용합니다. 클라이언트가 브로커에 설정된 것과 다른 경로를 사용해야 하는 경우 표준 |
| acceptor: 브로커의 키 저장소에 대한 암호입니다.
커넥터에 사용되는 경우: 클라이언트의 키 저장소에 대한 암호입니다. 이는 양방향 TLS를 사용하는 경우에만 커넥터와 관련이 있습니다. 브로커에서 이 값을 구성할 수 있지만 클라이언트가 다운로드하여 사용합니다. 클라이언트가 브로커에 설정된 암호와 다른 암호를 사용해야 하는 경우 표준 |
| 어셉터: 브로커가 신뢰하는 모든 클라이언트의 키를 보유한 브로커의 TLS 신뢰 저장소에 대한 경로. 이는 양방향 TLS를 사용하는 경우에만 어셉터와 관련이 있습니다.
커넥터에 사용되는 경우: 클라이언트가 신뢰하는 모든 브로커의 공개 키를 보유하는 클라이언트의 TLS 신뢰 저장소로 연결되는 경로입니다. 브로커에서 이 값을 구성할 수 있지만 클라이언트가 다운로드하여 사용합니다. 클라이언트가 서버에 설정된 것과 다른 경로를 사용해야 하는 경우 표준 |
| 어셉터에 사용되는 경우: 브로커의 신뢰 저장소에 대한 암호입니다. 이는 양방향 TLS를 사용하는 경우에만 어셉터와 관련이 있습니다.
커넥터에 사용되는 경우: 클라이언트의 신뢰 저장소에 대한 암호입니다. 브로커에서 이 값을 구성할 수 있지만 클라이언트가 다운로드하여 사용합니다. 클라이언트가 브로커에 설정된 암호와 다른 암호를 사용해야 하는 경우 표준 |
|
어셉터 또는 커넥터에 사용하든 이는 TLS 통신에 사용되는 쉼표로 구분된 암호화 제품군 목록입니다. 기본값은 |
|
어셉터 또는 커넥터에 사용하든 이는 TLS 통신에 사용되는 프로토콜의 쉼표로 구분된 목록입니다. 기본값은 |
|
이 속성은 수락자를 위한 것입니다. 클라이언트에게 양방향 TLS가 필요함을 알리는 메시지를 보냅니다. 유효한 값은 |