SSL / TLS 인증서 가져오기
IBM Cloud® Secrets Manager 을 사용하여 앱 또는 서비스에 사용할 수 있는 SSL / TLS 인증서를 가져올 수 있습니다.
SSL/TLS 인증서는 서버와 클라이언트 간의 통신 개인정보 보호를 설정하는 데 사용되는 일종의 디지털 인증서입니다. 인증서는 CA(인증 기관)디지털 인증서를 발급하는 신뢰할 수 있는 서드파티 조직 또는 회사입니다. 인증 기관은 일반적으로 고유한 인증서가 부여되는 개인의 ID를 확인합니다. 에서 발급하며 엔드포인트 간에 신뢰할 수 있고 안전한 연결을 만드는 데 사용되는 정보가 포함되어 있습니다. Secrets Manager 인스턴스에 인증서를 추가한 다음 이를 사용하여 클라우드 또는 사내 구축형 배치의 네트워크 통신을 보호할 수 있습니다. 인증서는 전용 Secrets Manager 서비스 인스턴스에 안전하게 저장되며, 라이프사이클을 중앙 집중식으로 관리할 수 있습니다.
Secrets Manager 에서 서비스로 가져오는 인증서는 가져온 인증서입니다(imported_cert). 타사 인증 기관에서 Secrets Manager 을 통해 주문하는 인증서는 공개 인증서 입니다(public_cert).
사설 인증 기관을 사용하여 만드는 인증서는 비공개 인증서입니다(private_cert).
Secrets Manager 에서 관리할 수 있는 비밀의 유형에 대해 자세히 알아보려면 비밀이란 무엇인가요?
시작하기 전에
시작하기 전에 필수 액세스 레벨이 있는지 확인하십시오. 시크릿을 작성하거나 추가하려면 작성자 서비스 역할 이상이 필요합니다.
인증서를 가져오기 전에 다음을 확인하십시오.
- 일치하는 개인 키를 사용하여 X.509 준수 인증서를 작성하십시오 (선택사항).
- 파일을 개인정보 보호가 강화된 전자 메일( PEM ) 형식으로 변환하세요.
- Secrets Manager 으로 가져올 수 있도록 개인 키를 암호화하지 않은 상태로 유지합니다.
기존 인증서 가져오기
Secrets Manager를 사용하여 외부 인증 기관에서 서명하고 발행한 인증서 파일을 저장할 수 있습니다. 인증서 파일을 가져온 후 앱 및 서비스에 인증서를 배치하고 인증서를 다운로드하거나 갱신할 시간이 되면 수동으로 순환할 수 있습니다.
UI에서 인증서 가져오기
Secrets Manager UI를 사용하여 기존 인증서를 가져올 수 있습니다.
-
콘솔에서 메뉴 아이콘
> 리소스 목록을 클릭하십시오.
-
서비스 목록에서 Secrets Manager의 인스턴스를 선택하십시오.
-
시크릿 표에서 추가를 클릭하십시오.
-
다음 을 클릭하십시오.
-
시크릿을 쉽게 식별할 수 있도록 이름 및 설명을 추가하십시오.
-
시크릿에 지정할 시크릿 그룹을 선택하십시오.
시크릿 그룹이 아직 없습니까? 시크릿 그룹 필드에서 작성을 클릭하여 새 그룹의 이름과 설명을 제공할 수 있습니다. 시크릿은 새 그룹에 자동으로 추가됩니다. 시크릿 그룹에 대한 자세한 정보는 시크릿 구성을 확인하십시오.
-
선택사항: 인스턴스에서 유사한 시크릿을 검색하는 데 도움이 되는 레이블을 추가하십시오.
-
선택사항: 시크릿 또는 시크릿의 특정 버전에 메타데이터를 추가하십시오.
- 파일을 업로드하거나 메타데이터 및 버전 메타데이터를 JSON 형식으로 입력하십시오.
-
다음 을 클릭하십시오.
-
인증서 가져오기 타일을 선택합니다.
-
인증서 파일을 선택하거나 값을 입력하십시오.
만료되지 않은 X.509 인증서 파일을 PEM 형식으로 저장할 수 있습니다. 다른 형식의 인증서로 작업하는 경우, 명령줄 유틸리티를 사용하여 인증서를 .pem 로 변환할 수 있습니다. 자세한 내용은 인증서를 가져올 수 없는 이유를 참조하세요
- 선택사항: 개인 키 파일을 선택하거나 값을 입력하십시오.
개인 키를 저장하도록 선택하는 경우 인증서와 일치하는지 확인하십시오. 개인 키를 서비스로 가져오려면 암호화되어 있지 않아야 합니다.
- 선택사항: 중간 인증서 파일을 선택하거나 값을 입력하십시오.
- 다음 을 클릭하십시오.
- 인증서의 세부사항을 검토하십시오.
- 추가 를 클릭하십시오.
CLI에서 인증서 가져오기
시작하기 전에 CLI 문서에 따라 API 엔드포인트를 설정하세요.
Secrets Manager CLI 플러그인을 사용하여 인증서를 가져오려면 ibmcloud secrets-manager secret-create 명령을 실행하십시오.
예를 들어, 다음 명령은 인증서를 개인 키 및 중간 인증서와 함께 가져옵니다.
.pem 형식의 인증서 파일을 가져올 수 있습니다. Secrets Manager CLI에서 올바르게 구문 분석할 수 있도록 PEM 파일을 단일 행 형식으로 변환하십시오.
certificate=$(cat cert.pem)
private_key=$(cat key.pem)
ibmcloud secrets-manager secret-create --secret-name example-imported-cert-secret --secret-type imported_cert --imported-cert-certificate ${certificate} --imported-cert-private-key ${private_key}
명령은 다른 메타데이터와 함께 시크릿의 ID 값을 출력합니다. 명령 옵션에 대한 자세한 정보는 ibmcloud secrets-manager secret-create의
내용을 참조하십시오.
API를 사용하여 인증서 가져오기
Secrets Manager API를 호출하여 프로그래밍 방식으로 인증서를 가져올 수 있습니다.
다음 예제는 기존 인증서를 가져오는 데 사용할 수 있는 조회를 보여줍니다. API를 호출할 때 ID 변수와 IAM 토큰을 Secrets Manager 인스턴스에 고유한 값으로 바꾸십시오.
custom_metadata 및 version_custom_metadata 요청 매개변수를 사용하여 조직의 요구사항과 관련된 메타데이터를 저장할 수 있습니다. version_custom_metadata 의 값은 시크릿 버전에 대해서만 리턴됩니다. 시크릿의 사용자 정의 메타데이터는 최대 50개의 버전에 대해 다른 모든 메타데이터로 저장되며 기밀 데이터를 포함하지
않아야 합니다.
.pem 형식의 인증서 파일을 가져올 수 있습니다. Secrets Manager CLI에서 올바르게 구문 분석할 수 있도록 PEM 파일을 단일 행 형식으로 변환하십시오.
curl -X POST
-H "Authorization: Bearer {iam_token}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"name": "example-imported-certificate",
"description": "description of my imported certificate.",
"secret_type": "imported_cert",
"secret_group_id": "67d025e1-0248-418f-83ba-deb0ebfb9b4a",
"labels": [
"dev",
"us-south"
],
"certificate": "-----BEGIN CERTIFICATE-----\nMIIE3jCCBGSgAwIBAgIUZfTbf3adn87l5J2Q2Aw+6Vk/qhowCgYIKoZIzj0EAwIw\n-----END CERTIFICATE-----",
"intermediate": "-----BEGIN CERTIFICATE-----\nMIIE3DCCBGKgAwIBAgIUKncnp6BdSUKAFGBcP4YVp/gTb7gwCgYIKoZIzj0EAwIw\n-----END CERTIFICATE-----",
"private_key": "-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAqcRbzV1wp0nVrPtEpMtnWMO6Js1q3rhREZluKZfu0Q8SY4H3\n-----END RSA PRIVATE KEY-----",
"custom_metadata": {
"metadata_custom_key": "metadata_custom_value"
},
"version_custom_metadata": {
"custom_version_key": "custom_version_value"
}
}' \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets"
성공적 응답은 다른 메타데이터와 함께 시크릿의 ID 값을 리턴합니다. 필수 및 선택적 요청 매개변수에 대한 자세한 내용은 비밀 만들기를 참조하세요.
Terraform을 사용하여 인증서 가져오기
Secrets Manager에 대해 Terraform을 사용하여 프로그래밍 방식으로 인증서를 가져올 수 있습니다.
다음 예제는 기존 인증서를 가져오는 데 사용할 수 있는 조회를 보여줍니다.
resource "ibm_sm_imported_certificate" "sm_imported_certificate" {
instance_id = local.instance_id
region = local.region
name = "test-imported-certificate"
secret_group_id = "default"
certificate = file("path_to_certificate_file")
intermediate = file("path_to_intermediate_certificate_file")
private_key = file("path_to_private_key_file")
}
선언적 인프라 관리를 위한 Secrets Manager 시크릿용 Terraform IBM 모듈(TIM)을 사용하여 가져온 인증서를 효율적으로 관리하세요. Terraform IBM 모듈 문서를 검토하세요.
인증서 서명 요청 작성
가져온 인증서 비밀을 사용하여 CSR(인증서 서명 요청)을 생성한 다음 인증 기관을 통해 외부에서 서명하고 가져온 인증서 비밀에 다시 추가할 수 있습니다.
가져온 인증서 비밀번호는 활성화 전 상태 로 생성됩니다. 활성화하려면 CSR 파일을 다운로드하고 인증 기관에서 서명한 다음 서명된 인증서를 새로운 비밀 버전으로 다시 추가해야 합니다.
UI에서 인증서 서명 요청 생성하기
Secrets Manager UI를 사용하여 인증서 서명 요청을 만들 수 있습니다.
-
콘솔에서 메뉴 아이콘
> 리소스 목록을 클릭하십시오.
-
서비스 목록에서 Secrets Manager의 인스턴스를 선택하십시오.
-
시크릿 표에서 추가를 클릭하십시오.
-
비밀 유형 목록에서 가져온 인증서 타일을 클릭합니다.
-
다음 을 클릭하십시오.
-
시크릿을 쉽게 식별할 수 있도록 이름 및 설명을 추가하십시오.
-
비밀에 할당할 비밀 그룹을인스턴스의 포함 시크릿이 준수해야 하는 환경 및 제한조건입니다. 액세스 및 협업을 사용하기 위해 사용자를 시크릿 그룹과 연관시킬 수 있습니다. 선택합니다.
시크릿 그룹이 아직 없습니까? 시크릿 그룹 필드에서 작성을 클릭하여 새 그룹의 이름과 설명을 제공할 수 있습니다. 시크릿은 새 그룹에 자동으로 추가됩니다. 시크릿 그룹에 대한 자세한 정보는 시크릿 구성을 확인하십시오.
-
선택사항: 인스턴스에서 유사한 시크릿을 검색하는 데 도움이 되는 레이블을 추가하십시오.
-
선택사항: 시크릿 또는 시크릿의 특정 버전에 메타데이터를 추가하십시오.
파일을 업로드하거나 메타데이터 및 버전 메타데이터를 JSON 형식으로 입력하십시오.
-
다음 을 클릭하십시오.
-
인증서 서명 요청(CSR) 만들기 타일을 선택합니다.
-
일반 이름을 추가합니다.
-
선택 사항: 제목 필드를 추가합니다.
-
선택 사항: 핵심 알고리즘을 선택합니다. 선택하지 않으면 RSA가 기본값으로 사용됩니다.
-
선택 사항: 인증서 역할을 선택합니다.
-
다음 을 클릭하십시오.
-
인증서 서명 요청의 세부 사항을 검토합니다.
-
추가 를 클릭하십시오.
UI에서 인증서 서명 요청 업데이트 및 다운로드
-
업데이트하려는 비밀 번호의 행에서 작업 메뉴
> 세부 정보를 클릭합니다.
-
세부사항 페이지 에서 관리된 CSR 탭 을 사용하여 인증서 서명 요청 필드를 편집합니다.
공통 이름이나 대체 주체 이름을 업데이트할 때, 인증서 주체를 일관되게 유지하기 위해 이름 중 적어도 하나는 변경하지 않도록 하십시오.
-
Update를 클릭하십시오.
-
비밀번호로 보호된 CSR 탭을 열고 CSR 다운로드를 클릭하여 인증서 서명 요청 파일을 다운로드합니다.
인증서 서명 요청 파일을 가지고 서명 인증 기관에 연락하여 CSR 파일에 서명하고 서명된 인증서를 받아야 합니다.
서명된 인증서를 UI에 다시 추가하기
Secrets Manager 인스턴스의 비밀번호에 서명된 인증서 파일을 다시 추가하려면, 관리되는 CSR을 사용하여 가져온 인증서를 수동으로 순환하는 방법에 설명된 과정을 사용하십시오.
API를 이용한 인증서 서명 요청 생성
Secrets Manager API를 호출하여 인증서 서명 요청 프로그램을 만들 수 있습니다.
API를 호출할 때 ID 변수와 IAM 토큰을 Secrets Manager 인스턴스에 고유한 값으로 바꾸십시오.
custom_metadata 및 version_custom_metadata 요청 매개변수를 사용하여 조직의 요구사항과 관련된 메타데이터를 저장할 수 있습니다. version_custom_metadata 의 값은 시크릿 버전에 대해서만 리턴됩니다. 시크릿의 사용자 정의 메타데이터는 최대 50개의 버전에 대해 다른 모든 메타데이터로 저장되며 기밀 데이터를 포함하지
않아야 합니다.
curl -X POST
-H "Authorization: Bearer {iam_token}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"name": "example-csr",
"description": "description of my csr.",
"secret_type": "imported_cert",
"secret_group_id": "67d025e1-0248-418f-83ba-deb0ebfb9b4a",
"labels": [
"dev",
"us-south"
],
"managed_csr": {
"require_cn": true,
"common_name": "example.com",
"ip_sans": "127.0.0.1",
"uri_sans": "https://www.example.com/test",
"other_sans": "2.5.4.5;UTF8:*.example.com",
"exclude_cn_from_sans": false
},
"custom_metadata": {
"metadata_custom_key": "metadata_custom_value"
},
"version_custom_metadata": {
"custom_version_key": "custom_version_value"
}
}' \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets"
성공적 응답은 다른 메타데이터와 함께 시크릿의 ID 값을 리턴합니다. 필수 및 선택적 요청 매개변수에 대한 자세한 내용은 비밀 만들기를 참조하세요.
API를 이용한 인증서 서명 요청 업데이트 및 다운로드
Secrets Manager API를 호출하여 인증서 서명 요청을 프로그래밍 방식으로 업데이트할 수 있습니다.
API를 호출할 때 ID 변수와 IAM 토큰을 Secrets Manager 인스턴스에 고유한 값으로 바꾸십시오.
curl -X POST
-H "Authorization: Bearer {iam_token}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"name": "example-csr",
"description": "description of my csr.",
"secret_type": "imported_cert",
"secret_group_id": "67d025e1-0248-418f-83ba-deb0ebfb9b4a",
"labels": [
"dev",
"us-south"
],
"managed_csr": {
"alt_names": "alt1"
}
}' \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets"
성공적 응답은 다른 메타데이터와 함께 시크릿의 ID 값을 리턴합니다. 필수 및 선택적 요청 매개변수에 대한 자세한 내용은 비밀 만들기를 참조하세요.
서명된 인증서를 API로 다시 추가하기
Secrets Manager 의 비밀번호에 서명된 인증서 파일을 다시 추가하려면, 수동으로 가져온 인증서 순환 사용에 설명된 과정을 사용하십시오.
CLI에서 인증서 서명 요청 생성하기
시작하기 전에 CLI 문서에 따라 API 엔드포인트를 설정하세요.
Secrets Manager 의 CLI 플러그인을 사용하여 인증서 서명 요청을 생성하려면, ibmcloud secrets-manager secret-create 명령. 예를 들어, 다음 명령은 --imported-cert-managed-csr 옵션을 사용하여 인증서 서명 요청을 생성하여 common_name 필드에 example.com. Secrets Manager 의 API 문서를 검토하여 지원되는 선택적 제목 필드의 전체 목록을 확인하십시오.
ibmcloud secrets-manager secret-create --secret-name example-imported-cert-csr-secret --secret-type imported_cert --imported-cert-managed-csr '{"common_name":"example.com"}'
CLI에서 인증서 서명 요청 업데이트 및 다운로드
시작하기 전에 CLI 문서에 따라 API 엔드포인트를 설정하세요.
Secrets Manager 의 CLI 플러그인을 사용하여 인증서 서명 요청을 업데이트하려면, ibmcloud secrets-manager secret-metadata-update 명령. 예를 들어, 다음 명령은 인증서 서명 요청을 --imported-cert-managed-csr 옵션으로 업데이트하여 alt_names 필드에 alt1. Secrets Manager 의 API 문서를 검토하여 지원되는
선택적 제목 필드의 전체 목록을 확인하십시오.
ibmcloud secrets-manager secret-metadata-update --id SECRET_ID --imported-cert-managed-csr '{"alt_names":"alt1"}'
Secrets Manager 의 CLI 플러그인을 사용하여 인증서 서명 요청을 받으려면, ibmcloud secrets-manager secret-metadata 명령.
ibmcloud secrets-manager secret-metadata --id SECRET_ID
CLI에서 서명된 인증서를 다시 추가하기
Secrets Manager 의 비밀번호에 서명된 인증서 파일을 다시 추가하려면, 수동으로 가져온 인증서 순환 사용에 설명된 과정을 사용하십시오.