요약
애플리케이션 데이터에 대한 데이터 보안 및 데이터 액세스는 규모에 관계없이 클라이언트 애플리케이션 및 데이터베이스 보호 환경을 보호하는 데 있어 중요한 단계입니다. 데이터를 보호하는 가장 간단한 방법 중 하나는 애플리케이션에서 데이터베이스 서버로의 액세스 경로를 보호하는 것입니다. 일부 데이터베이스는 데이터베이스에 대한 세션 연결을 위해 클라이언트 통신을 보호하기 위해 폐쇄형 체계를 사용하지만, Couchbase 서버는 통신을 보호하기 위해 TLS 인증서를 사용합니다. 이 과정은 초보자에게는 복잡할 수 있지만, 새로운 무료 인증 기관인 Let's Encrypt는 이를 바꾸고 모든 사람에게 보안 기술을 제공하는 것을 목표로 하고 있습니다.
암호화 시작하기
Let's Encrypt(줄여서 LE)를 시작하려면 인증서 아키텍처에 대한 최소한의 지식만 있으면 되지만 Unix 또는 Windows 시스템에 대한 실무 지식이 필요합니다. LE는 "자동화된 인증서 관리 환경(ACME)"이라는 IETF 프로토콜 사양을 통해 인증서 생성 및 관리에 대한 자동화된 접근 방식을 사용합니다. ACME는 자동화를 통해 향상된 보안 패러다임을 제공합니다. 이 접근 방식의 몇 가지 장점은 다음과 같습니다:
- 자동화된 인증서 만들기, 갱신 및 해지
- 도메인 이름/소유자 유효성 검사
- 상호 서명된 인증서 기능
- ACME 기반
- 확장 가능
렛츠 인크립트에 대한 자세한 내용은 다음 홈페이지에서 확인할 수 있습니다. https://letsencrypt.org/ 기술에 대해 자세히 알고 싶으시다면 이 링크를 클릭하세요. https://letsencrypt.org/how-it-works/ 에 자세한 내용이 나와 있습니다.
이제 LE 인증서를 만들고 Couchbase에서 사용하는 방법을 시작하겠습니다.
카우치베이스 보안
모든 애플리케이션에서 사용하기 위해 LE로 인증서를 만드는 것은 쉬우며, Couchbase 서버의 경우 몇 가지 명령을 실행하는 것만큼이나 간단합니다. 시작하기 전에 이해해야 할 전제 조건이 있습니다. 이러한 전제 조건은 현재 Couchbase Server 문서 및 LE 웹 사이트에 설명되어 있습니다.
- 카우치베이스 리소스
https://developer.couchbase.com/documentation/server/4.5/security/security-comm-encryption.html
https://developer.couchbase.com/documentation/server/current/security/security-x509certsintro.html
- LetsEncrypt.com
CertBot으로 인증서 만들기
인증서를 만들고 설치하기 전에 CertBot이라는 LE 자동화 도구를 받아야 합니다.
사전 요구 사항
Let's Encrypt의 자동화된 인증서 도구인 CertBot을 설치하는 방법은 두 가지가 있습니다.
- OS 제공업체에서 제공합니다: 방문 https://certbot.eff.org/ 를 클릭하고 OS를 선택합니다.
- GitHub를 통해: "git"이 설치되어 있어야 합니다.
CertBot을 설치했으면 인증서를 만들 준비가 된 것입니다.
참고: 클라우드 또는 엣지가 아닌 시스템에 배포하는 경우와 같은 몇 가지 주의 사항이 있습니다. Let's Encrypt로 네트워크 및 서버 토폴로지를 결정할 때는 클라이언트 또는 인터넷 연결에 주의를 기울이세요.
다음 단계는 Amazon AWS의 인스턴스에서 Couchbase Server에 사용할 인증서를 만드는 데 사용되었습니다. 여러분의 단계도 비슷하겠지만 이 단계를 예시로 제공합니다.
1. 명령줄에서 '-h' 옵션을 사용하여 인증봇을 처음 실행합니다:
|
1 2 3 |
<span 클래스="토큰 코멘트"><span 클래스="hljs-comment"># cd certbot/</span></span> <span 클래스="토큰 코멘트"><span 클래스="hljs-comment"># ./certbot-auto -h</span></span> |
2. 수동 모드에서 인증서 생성 대화 상자를 시작하여 프롬프트 기반 생성을 시작합니다.
|
1 2 |
<span 클래스="토큰 코멘트"><span 클래스="hljs-comment"># ./certbot-auto certonly -manual -standalone</span></span> |
3. 라이선스 수락
4. 도메인이 본인 소유인지 확인하는 방법(웹 서버 또는 독립 실행형 내장 파이썬 서버)을 확인합니다.
5. 유효한 공용 DNS 호스트 이름 제공
6. 유효한 이메일 주소 제공
그림: 유효한 호스트 이름의 예

위 스크린샷은 요청 구성 시 사용되는 설정 화면의 모습입니다.
|
1 2 3 |
<span 클래스="토큰 코멘트"><span 클래스="hljs-comment"># 인증봇-자동 인증 전용 --이메일 info@DOMAIN.com \.</span></span> --동의-tos 매뉴얼 --갱신-by-기본값 \ --인증자 독립형 |
인증서 만들기에 성공하면 다음과 같은 메시지가 표시됩니다:
|
1 2 3 4 5 6 |
중요 참고: - 축하합니다<span 클래스="토큰 연산자">!</span> 귀하의 인증서 그리고 체인 가지고 been 저장 에서 /등/letsencrypt/라이브/귀하의 도메인.com/풀체인.pem. 귀하의 cert will 만료 on <span 클래스="토큰 연산자"><</span><span 클래스="hljs-number">30</span> 일수 나중에<span 클래스="토큰 연산자">></span>. To 얻다 a new 버전 의 의 인증서 <span 클래스="토큰 키워드"><span 클래스="hljs-keyword">in</span></span> 의 미래, 간단하게 실행 CertBot 다시. |
인증서가 제대로 저장되었는지 확인하기 위해 다음과 같이 디렉토리 내용을 나열할 수 있습니다:
|
1 |
<span 클래스="토큰 함수">ls</span> <span 클래스="hljs-operator">-l</span> 등/letsencrypt/라이브/귀하의 도메인.com/ |
SAN(인증서 주체 대체 이름) 구성
인증서가 두 개 이상의 이름으로 주소가 지정될 가능성이 높습니다. SAN(주체 대체 이름)이라고도 하는 이름을 인증서에 추가할 수 있습니다. SAN을 사용하여 여러 도메인에 대한 인증서를 만드는 예는 아래와 같습니다:
|
1 2 3 4 5 6 |
인증봇-자동 certonly --이메일 정보@도메인.com --동의-tos 매뉴얼 --갱신-by-기본값 / <span 클래스="hljs-operator">-d</span> www.도메인.com / <span 클래스="hljs-operator">-d</span> 도메인.com <span 클래스="hljs-operator">-d</span> 자동 구성.도메인.com / <span 클래스="hljs-operator">-d</span> www.도메인2.com / <span 클래스="hljs-operator">-d</span> 도메인2.com / <span 클래스="hljs-operator">-d</span> 자동 구성.도메인2.com --인증자 독립형 |
인증서 만들기와 준비가 만족스러우면 이제 Couchbase Server에 인증서를 추가할 차례입니다.
카우치베이스에 인증서 배포
준비
인증서 생성이 성공적으로 완료되면 명령줄 도구 세트를 사용하여 Couchbase가 인증서에 액세스할 수 있는지 확인해야 합니다. 전체 설명은 표시된 Couchbase 서버 문서 링크에 있으며 다음 단락에서 설정 예제를 제공합니다.
https://developer.couchbase.com/documentation/server/current/security/security-x509certsintro.html
LE 인증서를 암호화에 사용하려면 LE의 "CA 루트" 인증서를 제공해야 합니다. 다음 링크는 CA에 대한 계층 구조에 대한 다이어그램과 설명을 제공합니다.
https://letsencrypt.org/certificates/
CA 다이어그램 자체는 여기에 나와 있습니다: https://letsencrypt.org/certs/isrg-keys.png
인증서 가져오기
인증서를 Couchbase 서버로 가져오는 작업은 각 노드에서 수행해야 합니다. 또한 Couchbase 서버 디렉터리의 "받은 편지함"이라는 특수 디렉터리가 인증서를 저장하는 데 사용됩니다. 루트 권한으로 명령을 실행할 때는 Couchbase 서버 디렉터리가 손상되지 않도록 각별히 주의하세요. "받은 편지함" 디렉토리 및 그 안의 모든 파일에 대해 소유자 및 그룹이 "couchbase"로 설정되어 있는지 확인합니다.
이 절차는 각 노드에서 완료해야 합니다. 또한 각 노드에는 DNS 주소 지정이 가능한 호스트 이름이 있거나 NGinX와 같은 역방향 프록시 또는 기타 방법을 사용해야 합니다. 자세한 내용은 https://www.letsencrypt.com/documentation 또는 다음 가이드를 참조하세요: https://github.com/certbot/certbot/wiki/Links
1. CA-Root 인증서 다운로드
a. 브라우저를 사용하여 여기에 표시된 텍스트를 저장합니다:
I. https://www.identrust.com/certificates/trustid/root-download-x3.html 를 다음과 같은 일반 텍스트 파일(예: lets-encrypt-x3-rootCA.pem)로 변환합니다.
b. 파일 내부의 키 형식을 아래와 같이 지정하고 일반 텍스트(RTF 등이 아닌)로 저장합니다.
I. ---시작 인증서----
--인증서 종료--
2. Couchbase 서버 "받은 편지함" 디렉터리 만들기
a. mkdir /opt/couchbase/var/lib/couchbase/inbox
3. 권한을 "루트"에서 "카우치베이스"로 변경하기
a. chown couchbase:couchbase -R /opt/couchbase/var/lib/couchbase/inbox
4. '받은 편지함'을 현재 작업 디렉터리로 설정합니다.
a. cd /opt/couchbase/var/lib/couchbase/inbox
5. Let's Encrypt로 만든 인증서를 받은 편지함에 복사합니다.
a. cp /etc/letsencrypt/live/your.domain.com/cert1.pem .
b. cp /etc/letsencrypt/live/your.domain.com/pkey1.pem .
c. cp /etc/letsencrypt/live/your.domain.com/fullchain.pem chain.pem
6. 개인 키를 RSA로 변환
a. openssl rsa -in pkey.pem > pkey.key
7. 다른 인증서를 Couchbase Server로 가져오기
a. ROOT-CA 인증서를 Couchbase로 가져오기
I. /opt/couchbase/bin/couchbase-cli ssl-manage -c localhost -upload-cluster-ca=lets-encrypt-x3-rootCA.pem -u -p
b. 노드에서 RSA 변환된 개인 키를 가져옵니다.
I. /opt/couchbase/bin/couchbase-cli ssl-manage -c localhost -set-node-certificate -u -p
구성 테스트
구성이 제대로 작동하는지 테스트하려면 FireFox, 즉 Chrome 버전 50.x와 같은 웹 브라우저를 열고 다음과 같이 HTTPS를 통해 서버 URL에 접속합니다:
https://myurl.com:18091/
주소 표시줄에 다음과 같은 이미지가 표시되어 UI가 보호되었음을 알 수 있습니다.
![]()
이 포트는 애플리케이션 계층에서 애플리케이션과 서버 간의 통신을 보호하기 위해 사용하는 것과 동일한 포트입니다.
x.509 인증서에 대한 추가 지원이 필요한 경우 여기에서 Couchbase 4.5 설명서를 참조하세요: https://developer.couchbase.com/documentation/server/4.5/admin/admin-intro.html
다음 주소로 이메일을 보낼 수도 있습니다. austin.gonyou@couchbase.com 또는 Don.Pinto@couchbase.com
[...] Let's Encrypt x.509 인증서를 사용하여 Couchbase 서버 보안 - Austin Gonyou [...]