Windows 및 Linux에서 SSL/TLS 암호화 구성
TLS는 TLS보다 낮은 성능 오버헤드로 네트워크 보안을 제공합니다. NCache 데이터 암호화. 이는 필수적입니다. NCache 서버와 클라이언트, 다른 서버, 캐시 및 브리지 간의 데이터 공유가 필요한 활동. 필요에 따라 TLS를 선택적으로 사용하여 특정 데이터 전송을 보호할 수 있습니다. 작동 방식에 대해 자세히 알아보십시오. 여기에서 지금 확인해 보세요..
주의 사항
다음 TLS 구성은 5.3 SP2 이상에서만 작동합니다.
이러한 고려 사항을 이해하면 배포가 보장됩니다. NCache TLS 암호화는 원활하게 진행됩니다.
주의 사항
다음을 진행하기 전에 캐시 및 클라이언트 프로세스가 중지되었는지 확인하세요.
TLS 암호화를 구성하는 방법
NCache 서버와 클라이언트 컴퓨터 모두에 인증 인증서를 검색할 수 있는 두 개의 기본 위치가 있습니다. 개인 상점 그리고 신뢰할 수 있는 루트(TR) 저장소. 개인 저장소에 있는 인증서는 로컬 컴퓨터의 모든 사용자가 액세스할 수 있는 반면, 사용자 저장소에 있는 인증서는 특정 사용자만 액세스할 수 있습니다. NCache 특정 사용자로 실행 중인 경우에만 액세스할 수 있습니다. 4개의 특정 매장이 있으며, NCache 인증 인증서를 검색할 수 있습니다.
- 신뢰할 수 있는 루트: 로컬 시스템
- 신뢰할 수 있는 루트: 현재 사용자
- 개인: 로컬 머신
- 개인: 현재 사용자
주의 사항
액세스 제한을 방지하려면 인증 인증서를 시스템 수준에 배치하세요.
서버가 시작되면 레지스트리에 저장된 지문으로 인증서를 읽기 시작합니다. 앞서 언급한 네 가지 저장소, 즉 로컬 시스템과 현재 사용자 모두의 신뢰할 수 있는 루트(TR)와 로컬 시스템과 현재 사용자 모두의 개인에서 인증서를 체계적으로 확인합니다. 서버는 이 순서대로 찾은 첫 번째 인증서를 선택합니다. 그 후, 서버는 지문을 통해 선택한 인증서를 읽고 이를 클라이언트와 공유하여 보안 통신을 촉진합니다. 이 프로세스를 통해 서버는 시작 중에 사용 가능한 저장소에서 인증에 적합한 인증서를 얻습니다.
TLS 암호화를 구성하려면 아래를 참조하세요.
Windows 시스템에 TLS 인증서를 설치하려면 아래 단계를 따라야 합니다.
Step-1 : 컴퓨터에 로그인하세요.
Step-2 : 만들기(세부 사항에 따라 자체 서명된 인증서를 만들 수 있습니다. 여기에서 지금 확인해 보세요.) 또는 내보낼 수 있는 개인 키가 포함된 TLS 인증서를 얻습니다.
중대한
- 인증서는 CA(인증 기관)의 승인을 받아야 합니다. 이를 구성의 일부로 반영하려면 기본 제약 조건 섹션에서 다음을 지정하는지 확인하세요. 제목 유형=CA FBI 증오 범죄 보고서 인증서 세부 사항. 마찬가지로, 다음을 통해 이를 달성할 수 있습니다.
-TextExtension
값이있는 속성@("2.5.29.19={text}CA=true")
다음 명령을 사용하여 인증서를 생성할 때:New-SelfSignedCertificate
. - 자체 생성 인증서는 사용하지 않는 것이 좋습니다. 생산 환경. 그러나 테스트 환경에서는 사용할 수 있습니다.
Step-3 : 자세한 내용에 따라 인증서를 적절한 시스템으로 가져옵니다. 여기에서 지금 확인해 보세요..
Step-4 : PR 기사 승 + R입력 MMC, 그리고 언론 엔터 버튼.
Step-5 MMC에서는 입양 부모로서의 귀하의 적합성을 결정하기 위해 미국 이민국에 메뉴를 클릭합니다 스냅인 추가 / 제거를. 선택 인증서 사용 가능한 스냅인 목록에서 추가 버튼을 클릭합니다.
Step-6 : 다음에서 계정 유형을 선택하세요. 내 사용자 계정, 서비스 계정및 컴퓨터 계정. 당신은 선택할 수 있습니다 내 사용자 계정 또는 인증서를 배치한 위치에 따른 로컬 컴퓨터입니다.
Step-7 : 왼쪽 창에서 MMC, 확장하다 인증서 및 탐색 현재 사용자 > 개인 > 인증서 다음과 같은 TLS 인증서를 찾으려면 클라이언트 인증 로 의도된 목적 그리고 더블클릭하세요. 인증서 배치에 대해 알아보려면 다음을 참조하세요. 인증서 배치에 대한 고려 사항.
Step-8 : . 인증서 대화 상자, 세부정보 탭을 클릭하고 지문. 그것을 클릭하고 상자에서 16진수 문자를 복사하십시오. 인증서 지문에 콜론(':')이나 추가 공백이 있으면 제거합니다. 진행 단계에서 필요하므로 지문을 저장합니다.
Step-9 : 마찬가지로 복사 인증서 이름(CN) 클릭하여 제목 속성과 그 뒤에 오는 것만 복사 CN = 이 경우에는 "예"입니다. 다음 단계에서 필요하므로 인증서 이름을 저장하십시오.
Step-10 : 다음 사항을 확인하십시오. NCache 인증서를 가져오는 데 사용된 것과 동일한 사용자로 서비스가 실행되고 있습니다.
Step-11 : 다음을 사용하십시오. PowerShell cmdlet TLS 보안을 활성화합니다. 여기에 사용된 속성에 대해 자세히 알아보려면 아래에 설명된 인증서 요소를 참조하세요. 실행할 때 Enable-NCacheTLS
명령을 실행하려면 다음을 지정해야 합니다. CertificateName
및 CertificateThumbprint
8단계와 9단계에서 저장한 것입니다.
Enable-NCacheTLS -Node "20.200.20.39,20.200.20.40" -CertificateName "Example" -CertificateThumbprint "596846ab6bdd9edb03cdfbdfa1aa7b0b05e744a6" -ClientServerCommunication -UseMutualTLSForClientToServer true
- 위 명령은 다음과 같은 경우에만 작동합니다. NCache 클라이언트 컴퓨터에 설치됩니다. 그렇지 않은 경우 다음을 사용하여 TLS를 수동으로 활성화해야 합니다. tls.ncconf 파일을 통해 사용 가능 NCache Windows의 NuGet 패키지는 다음과 같습니다.
<tls-info>
<certificate-name>certificate-name</certificate-name>
<certificate-thumbprint>your-thumbprint</certificate-thumbprint>
<enable>false</enable>
<enable-client-server-tls>false</enable-client-server-tls>
<use-mutual-tls-for-client-to-server>false</use-mutual-tls-for-client-to-server>
</tls-info>
중대한
클러스터의 연결성과 동질성을 보장하려면 모든 서버 및 클라이언트 노드에서 구성 값이 일관되는지 확인하십시오.
Step-12 : 원하는 속성이 설정되면 캐시, 클라이언트 프로세스 및 NCache 서비스. 다음을 확인하세요. NCache 인증서를 가져오는 데 사용된 것과 동일한 사용자로 서비스가 실행되고 있습니다.
주의 사항
인증서가 활성화되면 다음을 확인하십시오.
- XNUMXD덴탈의 NCache 인증서를 가져오는 데 사용된 것과 동일한 사용자로 서비스가 실행되고 있습니다.
- 모든 클라이언트 응용 프로그램은 64비트 시스템에서 실행됩니다.
인증서 배치에 대한 고려 사항
Java 클라이언트가 Windows 시스템에서 실행 중인 경우 인증서 관리와 관련하여 중요한 고려 사항이 발생합니다. 구체적으로, 자바 기본적으로 로컬 시스템 인증서 사용을 지원하지 않습니다. 대신 현재 사용자로부터 인증서를 검색합니다. 이는 클라이언트가 상호 TLS에 대해 구성된 경우 클라이언트의 인증서와 연결된 발급자의 인증서가 모두 현재 사용자의 인증서 저장소에 있어야 함을 의미합니다. 상호 TLS가 비활성화된 시나리오에서는 요구 사항이 변경됩니다. 이 경우 현재 사용자의 인증서 저장소에는 인증 기관(CA) 인증서만 있으면 됩니다.
주의 사항
NCache 인증서 저장소에 저장된 인증서를 자동으로 활용합니다. 올바른 사용자 계정으로 시작하면 NCache 서비스는 해당 인증서 저장소에서 관련 인증서를 자동으로 식별하고 사용합니다.
중대한
럭셔리 Windows, 루트 및 중간 인증서가 포함된 번들 인증서가 있는 경우 로컬 시스템의 개인 루트와 신뢰할 수 있는 루트 모두에 인증서를 추가해야 합니다. 별도의 신뢰할 수 있는 루트 및 개인 인증서가 있는 경우 이를 개별적으로 추가해야 합니다. 즉, 개인 인증서는 개인 저장소에, CA 루트 인증서는 신뢰할 수 있는 루트 저장소에 추가해야 합니다.
TLS를 통해 성공적인 클라이언트 연결 확인
- TLS를 통한 성공적인 클라이언트 연결을 확인하기 위해 다음을 실행할 수 있습니다. 스트레스 테스트 PowerShell을 사용하는 cmdlet입니다. 다음 예제가 실행됩니다.
Test-Stress
캐시에 데모캐시.
Test-Stress -CacheName demoCache
Microsoft 네트워크 모니터를 사용하여 이를 확인할 수도 있습니다. TLS가 활성화된 경우 프로토콜 이름 과정의 PowerShell을 실행에 Test-Stress
될거야 TLS.
주의 사항
UseMutualTLSForClientToServer
, EnableBridgeTLS
, EnableClientServerTLS
, EnableServerToServerTLS
및 UseMutualTLSServerToServer
다음과 같은 경우에는 작동하지 않습니다. Enable
개별적으로 활성화되었는지 여부에 관계없이 true로 설정되지 않았습니다.
인증서 요소
언급된 구성 중 하나를 사용하려면 TLS 인증서를 인증 기관(CA)에서 부여하거나 사용자가 자체 서명하여 암호화된 데이터 전송을 보장할 수 있습니다. 이러한 인증서에는 일반적으로 다음 정보가 포함됩니다.
파라미터 | 데이터 타입 | 상품 설명 | 기본값 |
---|---|---|---|
-CertificateName* |
<String> |
CertificateName 매개 변수는 암호화에 사용할 TLS 인증서의 이름을 지정합니다. 보안 통신을 위해 원하는 TLS 인증서와 연결된 고유 이름을 제공합니다. | - |
-CertificateThumbprint* |
<String> |
신뢰성과 무결성을 보장하기 위해 TLS 인증서의 고유 지문을 지정합니다. 보안 통신을 위해 원하는 TLS 인증서와 연관된 지문 값을 제공합니다. | - |
-ClientServerCommunication |
<SwitchParameter> |
클라이언트와 서버 노드 간의 통신에 TLS 암호화를 활성화합니다. | 거짓 |
-ServerToServerCommunication |
<SwitchParameter> |
클러스터 내의 서버 노드 간 통신에 TLS 암호화를 활성화합니다. | 거짓 |
-BridgeCommunication |
<SwitchParameter> |
간의 통신에만 TLS 암호화를 활성화합니다. NCache 브리지와 지리적으로 분리된 캐시. 사용자가 브리지 노드 간의 통신도 포함하도록 이 보안을 확장하려는 경우 다음을 사용해야 합니다. ServerToServerCommunication 깃발. 만약에 BridgeCommunication 사실입니다. 활성화하세요. ClientServerCommunication . 현재, NCache 두 브리지 노드 모두에서 동일한 인증서를 사용해야 합니다. |
거짓 |
-UseMutualTLSForClientToServer |
<String> |
유효한 클라이언트 TLS 인증서에 대한 요구 사항을 적용합니다. 활성화되면 서버에 연결하는 클라이언트 노드는 인증을 위해 유효한 TLS 인증서를 제시하고 해당 인증서의 인증 기관이 서버의 신뢰할 수 있는 루트에 존재하도록 해야 합니다. | 거짓 |
-UseMutualTLSForServerToServer |
<String> |
통신 중에 유효한 서버 TLS 인증서에 대한 요구 사항을 적용합니다. 활성화되면 첫 번째 서버에 연결하는 서버 노드는 인증을 위해 유효한 TLS 인증서를 제시해야 합니다. 또한 모든 서버는 신뢰할 수 있는 루트에 서로의 인증 기관이 있어야 합니다. | 참된 |
-Node |
<String> |
TLS 설정이 적용될 캐시 서버, 캐시 클라이언트 또는 브리지 노드의 IP 주소를 하나 이상 지정합니다. 원하는 노드에서 TLS 설정을 활성화하려면 쉼표로 구분된 IP 주소 목록을 제공하십시오. 클라이언트 노드가 다음과 같은지 확인하십시오. NCache 설치된 것이 포함되어 있습니다. ~을 위한 NCache 설치하지 않은 클라이언트는 수동 구성을 사용합니다. | - |
-Credentials |
<pscredential> |
지정된 작업에 대한 액세스 권한을 부여하는 데 필요한 사용자 자격 증명을 지정합니다. 이러한 자격 증명은 노드에서 적절한 권한이 있는 사용자에게 속해야 합니다. | - |
문제해결
TLS를 통한 클라이언트 연결은 다음과 같은 이유로 실패할 수 있습니다.
- 레지스트리 항목이 없으면 연결이 실패할 수 있습니다. 모든 항목이 레지스트리에 만들어졌는지 확인하십시오.
- If NCache 서비스에 인증서를 가져오는 데 사용된 사용자와 다른 사용자 자격 증명이 있으면 CertificateThumbprint 속성에 제공된 지문 값이 잘못된 경우 유효하지 않습니다.
- 클라이언트의 신뢰할 수 있는 루트에 서버의 CA가 없는 경우.
- If
UseMutualTLSForClientToServer
orUseMutualTLSForServerToServer
true이고 서버의 신뢰할 수 있는 루트에 클라이언트 또는 다른 서버의 CA가 없습니다. - 클라이언트와 서버 시스템의 속성 값이 동일하지 않으면 "암호 해독 작업 실패"라는 오류가 표시됩니다.