SSL 사용
CycleCloud 설치 디렉터리 내에 있는 cycle_server.properties 파일을 편집하여 SSL을 사용하도록 설정할 수 있습니다. 텍스트 편집기를 사용하여 cycle_server.properties 파일을 열고 다음 값을 적절하게 설정합니다.
# True if SSL is enabled
webServerEnableHttps=true
webServerRedirectHttp=true
중요합니다
cycle_server.properties 파일을 편집할 때는 먼저 파일에서 기존 키값 정의를 찾는 것이 중요합니다. 둘 이상의 정의가 있는 경우, 마지막 정의가 적용됩니다.
CycleCloud의 기본 SSL 포트는 포트 8443입니다. 다른 포트에서 암호화된 웹 통신을 실행하려는 경우 webServerSslPort
속성을 새 포트 값으로 변경할 수 있습니다.
webServerSslPort
및 webServerPort
값이 충돌하지 않도록 를 확인하십시오.
cycle_server.properties 파일을 편집한 후 암호화된 통신 채널을 활성화하려면 CycleCloud를 다시 시작해야 합니다.
/opt/cycle_server/cycle_server restart
암호화된 통신에 대해 구성할 때 CycleCloud에 대한 SSL 포트를 변경하지 않았다고 가정하면 이제 http://<my CycleCloud address>:8443/
이동하여 SSL 연결을 확인할 수 있습니다.
비고
HTTPS URL이 작동하지 않으면 <CycleCloud Home>/logs/catalina.err와 <CycleCloud Home>/logs/cycle_server.log를 확인하여 암호화된 채널이 응답하지 않는 이유를 나타낼 수 있는 오류 메시지를 확인하십시오.
Self-Generated 인증서
VeriSign과 같은 CA(인증 기관)의 인증서가 없는 경우 Azure CycleCloud와 함께 제공되는 자동 생성된 자체 서명된 인증서를 사용할 수 있습니다. 이는 SSL을 비용 없이 사용하는 빠른 방법이지만 대부분의 웹 브라우저는 신뢰할 수 있는 기관이 채널을 암호화하는 데 사용되는 인증서를 확인하지 않았다는 경고를 표시합니다. 보안 네트워크의 내부 CycleCloud 배포와 같은 일부 경우에는 허용됩니다. 사용자는 사이트를 보려면 브라우저에 예외를 추가해야 하지만 콘텐츠와 세션은 예상대로 암호화됩니다.
경고
Azure CycleCloud 자체 서명된 인증서의 유효 기간이 단축됩니다. 만료되면 브라우저는 신뢰할 수 없는 SSL 인증서에 대한 경고를 다시 실행합니다. 사용자는 웹 콘솔을 보려면 명시적으로 수락해야 합니다.
Let's Encrypt과의 작업
CycleCloud는 Let's Encrypt의 인증서를 지원합니다. CycleCloud에서 Let's Encrypt를 사용하려면 다음을 수행해야 합니다.
- 포트 443에서 SSL 사용
- CycleCloud가 외부 도메인 이름을 사용하여 포트 443을 통해 공개적으로 연결할 수 있는지 확인합니다.
설정 페이지에서 "SSL" 옵션을 사용하거나 CycleCloud 컴퓨터에서 cycle_server keystore automatic DOMAIN_NAME
실행하여 Let's Encrypt 지원을 사용하도록 설정할 수 있습니다.
CA에서 생성한 인증서로 작업하기
CA에서 생성된 인증서를 사용하면 신뢰할 수 있는 인증서 오류를 표시하지 않고 CycleCloud 설치에 대한 웹 액세스를 허용합니다. 프로세스를 시작하려면 먼저 다음을 실행합니다.
./cycle_server keystore create_request <FQDN>
서명된 인증서의 "일반 이름" 필드인 도메인 이름을 입력하라는 메시지가 표시됩니다. 그러면 지정된 도메인에 대한 자체 서명된 새 인증서가 생성되고 cycle_server.csr 파일이 작성됩니다. 인증 기관에 CSR을 제공해야 하며 최종 서명된 인증서(아래 server.crt라고 함)를 제공합니다. 또한 새 인증서와 루트 인증서 사이의 체인에서 사용되는 루트 인증서와 중간 인증서도 필요합니다. CA는 당신을 위해 이러한 정보를 제공해야 합니다. 단일 인증서 파일로 번들로 제공된 경우 다음 명령을 사용하여 가져올 수 있습니다.
./cycle_server keystore import server.crt
여러 인증서 파일을 제공한 경우 이름을 같은 명령에 추가하여 공백으로 구분하여 한 번에 모두 가져와야 합니다.
./cycle_server keystore import server.crt ca_cert_chain.crt
기존 인증서 가져오기
이전에 CA 또는 자체 서명된 인증서를 만든 경우 다음 명령과 함께 사용하도록 CycleCloud를 업데이트할 수 있습니다.
./cycle_server keystore update server.crt
PFX 파일을 가져오려면 CycleCloud 7.9.7 이상에서 다음 명령을 사용하여 수행할 수 있습니다.
./cycle_server keystore import_pfx server.pfx --pass PASSWORD
PFX 파일에는 하나의 항목만 포함될 수 있습니다. 또한 암호가 없더라도 -pass 인수가 필요합니다(이 경우 --pass ''
사용).
마지막으로, 이러한 명령 외부에서 키 저장소를 변경하는 경우 CycleCloud 7.9.7 이상에서 바로 키 저장소를 다시 로드할 수 있습니다.
./cycle_server keystore reconfig
키 저장소 구현 세부 정보
CycleCloud 인증서는 작업에 필요한 다른 인증서와 함께 /opt/cycle_server/config/private/keystore
에 저장됩니다. 다음은 키 저장소에 저장된 항목의 전체 목록이 아닌 목록입니다.
별명 | 목적 |
---|---|
정체성 | 사용자 연결 웹 인터페이스에 대한 인증서 체인 보유(포트 443 또는 8443) |
클러스터 아이덴티티 | CycleCloud에 연결할 노드의 인증서 체인을 보유합니다(포트 9443). |
뿌리 | 클러스터 ID를 포함하여 모든 로컬 인증서에 서명하는 데 사용되는 인증서를 보유합니다. |
키 저장소는 Java의 키 저장소 파일을 사용하여 검사할 수 있습니다. 예를 들어 다음 명령은 키 저장소의 모든 항목을 나열합니다.
keytool -list -keystore /opt/cycle_server/config/private/keystore -storepass changeit
위의 cycle_server
명령은 identity
별칭을 업데이트합니다.
cluster-identity
또는 root
인증서를 포함한 다른 항목의 업데이트는 지원되지 않습니다.
키 저장소는 직접 수정할 수 있지만 권장되지는 않습니다. 일반적으로 변경 내용을 적용하려면 CycleServer를 다시 시작해야 합니다.
경고
키 저장소의 콘텐츠를 변경하면 클러스터가 작동하지 않을 수 있습니다. 수정하기 전에 항상 백업을 만듭니다.
키 저장소의 암호는 changeit
현재 변경할 수 없습니다. 그러나 파일을 읽을 수 있고 cycle_server
사용자만 쓸 수 있습니다.
TLS 1.0 및 1.1에 대한 이전 버전과의 호환성
기본적으로 CycleServer는 TLS 1.2 프로토콜만 사용하도록 구성됩니다. 이전 웹 클라이언트에 대해 TLS 1.0 또는 1.1 프로토콜을 제공해야 하는 경우 이전 버전과의 호환성을 옵트인할 수 있습니다.
텍스트 편집기를 사용하여 cycle_server.properties 파일을 열고, sslEnabledProtocols
속성을 찾습니다.
sslEnabledProtocols="TLSv1.2"
속성을 지원할 프로토콜을 +
으로 구분된 목록으로 바꾸십시오.
sslEnabledProtocols="TLSv1.0+TLSv1.1+TLSv1.2"
암호화되지 않은 통신 해제
위의 설정을 통해 암호화되지 않은(HTTP) 연결을 만들 수 있지만 보안을 위해 HTTPS로 리디렉션됩니다.
CycleCloud 설치에 대한 암호화되지 않은 액세스를 방지할 수 있습니다. 암호화되지 않은 통신을 해제하려면 텍스트 편집기에서 cycle_server.properties 파일을 엽니다.
webServerEnableHttp
속성을 찾아 다음으로 변경하시오.
# HTTP
webServerEnableHttp=false
변경 내용을 저장하고 CycleCloud를 다시 시작합니다. CycleCloud에 대한 HTTP 액세스는 사용하지 않도록 설정됩니다.