중간 인증 기관 작성
중간 인증 기관(CA)은 앱 또는 웹사이트와 같은 최종 엔티티에 인증서를 서명하고 발행할 수 있는 하위 레벨의 인증 기관입니다. IBM Cloud® Secrets Manager에서는 중간 CA를 사용하여 개인 인증서를 작성할 수 있습니다.
이미 Secrets Manager 인스턴스에 상위 CA(예: 루트 CA 또는 중간 CA)를 작성한 경우 이를 사용하여 중간 CA를 서명하고 발행할 수 있습니다. Secrets Manager 외부의 다른 곳에 상위 CA를 작성한 경우, 해당 CA를 사용하여 중간 CA에 서명할 수도 있습니다.
인스턴스당 최대 10개의 중간 인증 기관을 작성할 수 있습니다. 인스턴스에 사용 가능한 구성 목록을 보려면 Secrets Manager UI의 시크릿 엔진 > 개인 인증서 페이지로 이동하십시오.
시작하기 전에
시작하기 전에 필수 액세스 레벨이 있는지 확인하십시오. 인스턴스의 엔진 구성을 관리하려면 관리자 서비스 역할 이상이 필요합니다.
지원되는 서명 방법
서비스는 다음 두 가지 옵션을 제공합니다.
| 서명 옵션 | 사용하는 경우 |
|---|---|
| 내부적으로 서명됨 | 기존의 상위 CA(예: 루트 CA 또는 다른 중간 CA)를 신뢰 앵커로 사용하는 인증서 체인을 빌드하고 있습니다. 상위 CA는 이전에 동일한 Secrets Manager 인스턴스에서 작성되었습니다. |
| 외부 서명 | 오프라인 또는 다른 Secrets Manager 서비스 인스턴스에서 상위 CA를 작성한 경우 외부 CA를 사용하여 중간 인증 기관을 서명하고 발행할 수 있습니다. |
Terraform에서 지원되지 않는 구성 조치
다음 작업은 지원되지 않습니다.
- CRL 순환
- CA 취소
UI에서 내부 서명이 있는 중간 CA 작성
내부 서명이 있는 중간 CA는 이전에 Secrets Manager 인스턴스에서 작성된 상위 CA를 신뢰 앵커로 사용합니다. Secrets Manager UI를 사용하여 내부 서명이 있는 중간 CA를 작성할 수 있습니다.
-
콘솔에서 메뉴 아이콘
> 리소스 목록을 클릭하십시오.
-
서비스 목록에서 Secrets Manager 인스턴스를 선택하십시오.
-
시크릿 엔진 페이지에서 개인 인증서 탭을 클릭하십시오.
-
인증 기관 테이블에서 인증 기관 작성을 클릭하여 작성 마법사를 시작하십시오.
-
인증 기관 유형 및 옵션을 지정하십시오.
- 기관 유형으로 중간 인증 기관을 선택하십시오.
- 내부 서명을 선택하십시오. 구성된 인증 기관 목록에서 중간 CA 인증서의 발급자로 사용할 CA를 선택합니다.
- 인증 기관을 쉽게 식별할 수 있는 이름을 입력하십시오.
- 이 CA에 대해 생성될 인증서에 대한 최대 TTL(Time-To-Live)을 선택하십시오. TTL은 CA 인증서가 유효하게 유지되는 기간을 결정합니다.
- 체인에 존재할 수 있는 최대 최종 엔티티 인증서 수를 선택하십시오.
- 발행 CA 인증서 URL을 최종 엔티티 인증서로 인코딩하려면 URL 인코딩 옵션을 사용으로 설정하십시오.
-
루트 CA 인증서에 대한 주체 이름 필드를 입력하십시오.
-
키 관리 서비스를 선택합니다. 서비스에서 내부적으로 루트 인증 기관 키를 만들려면 Secrets Manager 서비스를 선택하거나 Hyper Protect Crypto Services(HPCS)를 선택합니다. HPCS를 선택한 경우 다음 작업을 수행합니다:
-
HPCS 인스턴스를 선택하거나 HPCS 인스턴스 CRN을 수동으로 입력합니다
-
HPCS로 인증하기 위해 이전에 만든 IAM 자격증명 비밀을 선택합니다.
CA 구성에서 IAM 자격 증명을 설정한 후에는 나중에 교체할 수 없습니다.
-
키 저장소 목록에서 HPCS 개인 키 저장소를 선택하거나 키 저장소 ID를 직접 입력합니다.
-
기존 키를 사용하거나 새 키를 생성하도록 선택합니다. 기존 HPCS 개인키를 선택하거나 개인키 ID를 수동으로 입력하는 경우, 공개키가 존재하고 개인키 저장소에 있는 개인키와 동일한 ID를 가지고 있는지 확인해야 합니다.
새 키를 생성하도록 선택한 경우, 해당 키는 구성이 삭제될 경우를 대비하여 Secrets Manager 에서 삭제하지 않습니다.
-
-
CA 인증서에 대한 공개 및 개인 키를 생성하는 데 사용할 키 알고리즘을 선택하십시오.
-
CA 인증서에 대한 인증서 폐기 목록(CRL) 빌드 및 배포 지점을 사용하도록 설정할지 여부를 결정하십시오.
CRL은 예정된 만료일 전에 발급 인증 기관에서 해지한 인증서 목록입니다. CRL의 일부로 나열된 인증서는 애플리케이션에서 더 이상 신뢰할 수 없습니다.
- 각 인증서 요청에 대해 중간 CA에 대한 CRL을 구축하려면 CRL 구축 옵션을 사용으로 설정합니다.
- 중간 CA 인증서에서 폐기 목록의 URL을 인코딩하려면 CRL 배포 지점 옵션을 사용으로 설정하십시오.
- 생성된 CRL의 TTL(Time-To-Live)을 선택하십시오. TTL은 CRL이 유효하게 유지되는 시간을 결정합니다.
-
선택사항을 검토하십시오. 중간 CA를 작성하려면 작성을 클릭하십시오.
이제 이 중간 CA를 개인 인증서 생성을 위해 선택할 수 있습니다. 기존 구성을 수정하거나 제거하려면 업데이트하려는 인증 기관의 행에서 조치 메뉴 를 클릭하십시오.
API로 내부 서명을 사용하여 중간 CA 만들기
내부 서명이 있는 중간 CA는 이전에 Secrets Manager 인스턴스에서 작성된 상위 CA를 신뢰 앵커로 사용합니다. Secrets Manager API를 사용하여 내부 서명이 있는 중간 CA를 만들 수 있습니다.
1단계: 내부 서명을 사용하여 중간 CA 작성
다음 예제는 내부 서명을 사용하여 중간 CA를 작성하는 데 사용할 수 있는 조회를 보여줍니다. 요청 본문에서 signing_method 속성의 값을 internal 로 설정하십시오. issuer 속성을 사용하여 상위 인증 기관을 지정하십시오.
curl -X POST
--H "Authorization: Bearer {iam_token}" \
--H "Accept: application/json" \
--H "Content-Type: application/json" \
--d '{
"config_type": "private_cert_configuration_intermediate_ca",
"name": "example-intermediate-CA",
"common_name": "example.com",
"crl_disable": false,
"crl_distribution_points_encoded": true,
"crl_expiry": "72h",
"issuer": "example-root-CA",
"issuing_certificates_urls_encoded": true,
"max_ttl": "26300h",
"signing_method": "internal"
}' \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations"
직접 HSM을 가져오는 경우 요청에 다음 사항을 포함하세요:
"crypto_key": {
"label": "my_key",
"allow_generate_key": true,
"provider": {
"type": "hyper_protect_crypto_services",
"instance_crn": "replace_with_hpcs_crn::",
"pin_iam_credentials_secret_id": "replace_with_iam_credentials_secret_guid",
"private_keystore_id": "replace_with_keystore_id"
}
}
2단계: 중간 CA 서명
다음 예제는 1단계에서작성한 중간 CA에 서명하는 데 사용할 수 있는 조회를 보여줍니다.
curl -X POST
--H "Authorization: Bearer {iam_token}" \
--H "Accept: application/json" \
--H "Content-Type: application/json" \
--d -d '{
"action_type": "private_cert_configuration_action_sign_intermediate",
"intermediate_certificate_authority": "example-intermediate-CA"
}' \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations/example-root-CA/actions"
UI에서 외부 서명이 있는 중간 CA 작성
외부 서명이 있는 중간 CA는 외부 PKI 시스템 또는 다른 Secrets Manager 인스턴스의 상위 CA를 신뢰 앵커로 사용합니다. 상위 CA는 루트 CA 또는 중간 CA가 될 수 있습니다.
1단계: 중간 CA 및 서명 요청 작성
Secrets Manager UI에서 외부 서명을 사용하는 중간 CA 인증서를 작성할 수 있습니다.
-
콘솔에서 메뉴 아이콘
> 리소스 목록을 클릭하십시오.
-
서비스 목록에서 Secrets Manager 인스턴스를 선택하십시오.
-
시크릿 엔진 페이지에서 개인 인증서 탭을 클릭하십시오.
-
인증 기관 테이블에서 인증 기관 작성을 클릭하여 작성 마법사를 시작하십시오.
-
인증 기관 유형 및 옵션을 지정하십시오.
- 기관 유형으로 중간 인증 기관을 선택하십시오.
- 외부 서명을 선택하십시오.
- 인증 기관을 쉽게 식별할 수 있는 이름을 입력하십시오.
- 이 CA에 대해 생성될 인증서에 대한 최대 TTL(Time-To-Live)을 선택하십시오. TTL은 CA 인증서가 유효하게 유지되는 기간을 결정합니다.
- 발행 CA 인증서 URL을 최종 엔티티 인증서로 인코딩하려면 URL 인코딩 옵션을 사용으로 설정하십시오.
-
중간 CA 인증서에 대한 주체 이름 필드를 입력하십시오.
-
키 관리 서비스를 선택합니다. 서비스에서 내부적으로 루트 인증 기관 키를 만들려면 Secrets Manager 서비스를 선택하거나 Hyper Protect Crypto Services(HPCS)를 선택합니다. HPCS를 선택한 경우 다음 작업을 수행합니다:
-
HPCS 인스턴스를 선택하거나 HPCS 인스턴스 CRN을 수동으로 입력합니다
-
HPCS로 인증하기 위해 이전에 만든 IAM 자격증명 비밀을 선택합니다.
CA 구성에서 IAM 자격 증명을 설정한 후에는 나중에 교체할 수 없습니다.
-
키 저장소 목록에서 HPCS 개인 키 저장소를 선택하거나 키 저장소 ID를 직접 입력합니다.
-
기존 키를 사용하거나 새 키를 생성하도록 선택합니다. 기존 HPCS 개인키를 선택하거나 개인키 ID를 수동으로 입력하는 경우, 공개키가 존재하고 개인키 저장소에 있는 개인키와 동일한 ID를 가지고 있는지 확인해야 합니다.
새 키를 생성하도록 선택한 경우, 해당 키는 구성이 삭제될 경우를 대비하여 Secrets Manager 에서 삭제하지 않습니다.
-
-
CA 인증서에 대한 공개 및 개인 키를 생성하는 데 사용할 키 알고리즘을 선택하십시오.
-
CA 인증서에 대한 인증서 폐기 목록(CRL) 빌드 및 배포 지점을 사용하도록 설정할지 여부를 결정하십시오.
CRL은 스케줄된 만료일 이전에 발행 인증 기관에 의해 폐기된 인증서의 목록입니다. CRL의 일부로 나열된 인증서는 애플리케이션에서 더 이상 신뢰할 수 없습니다.
- 각 인증서 요청에 대해 중간 CA에 대한 CRL을 구축하려면 CRL 구축 옵션을 사용으로 설정합니다.
- 중간 CA 인증서에서 폐기 목록의 URL을 인코딩하려면 CRL 배포 지점 옵션을 사용으로 설정하십시오.
- 생성된 CRL의 TTL(Time-To-Live)을 선택하십시오. TTL은 CRL이 유효하게 유지되는 시간을 결정합니다.
-
선택사항을 검토하십시오. 중간 CA를 작성하려면 작성을 클릭하십시오.
중간 CA가 서명 필요 상태로 인스턴스에 대한 구성 목록에 추가됩니다. 이 중간 CA를 사용하여 개인 인증서를 발행하려면 먼저 외부 PKI 시스템에서 작성한 상위 CA 인증서를 사용하여 서명해야 합니다.
2단계: 외부 CA를 사용하여 중간 CA에 서명
외부 CA를 사용하여 서명하려는 중간 CA를 Secrets Manager 에 만들면 CSR(인증서 서명 요청)인증서를 확보하기 위해 조직이 인증 기관(CA)에 전송하는 전자 메시지입니다. 요청에는 공개 키가 포함되어 있고 개인 키로 서명됩니다. CA는 고유 개인 키로 서명된 후 인증서를 리턴합니다. 이 생성됩니다. CSR을 사용하여 중간 CA 인증서를 서명하고 발행할 수 있습니다.
-
Secrets Manager UI에서 시크릿 엔진 > 개인 인증서로 이동하십시오.
-
서명하려는 중간 CA의 행에서 조치 메뉴
> 인증서 서명을 클릭하십시오.
-
CSR을 복사하거나 다운로드하십시오.
-
CSR을 사용하여 중간 CA 인증서에 서명하십시오.
다양한 도구(예:
openssl) 중에서 선택하여 CSR 파일에 서명할 수 있습니다. 예를 들어, 다음openssl명령은 Secrets Manager에서 다운로드한 CSR 파일을 사용하고 PEM으로 인코딩된 CA 파일 및 연관된 개인 키를 사용하여 서명된 CA 인증서를 발행합니다.openssl x509 -req -in <intermediate-ca-csr-file> -CA <external-parent-ca-file> -CAkey <external-ca-key-file> -out <signed-intermediate-ca-file>이 명령은 서명 프로세스를 완료하기 위해 Secrets Manager 인스턴스로 가져올 수 있는 서명된 중간 CA 인증서 파일을 출력합니다.
3단계: 서명된 중간 CA를 인스턴스로 가져오기
외부 상위 CA를 사용하여 중간 CA 인증서에 서명한 후에는 Secrets Manager UI를 사용하여 인스턴스로 이 인증서를 가져올 수 있습니다.
API로 외부 서명을 사용하여 중간 CA 만들기
외부 서명이 있는 중간 CA는 외부 PKI 시스템 또는 다른 Secrets Manager 인스턴스의 상위 CA를 신뢰 앵커로 사용합니다. 상위 CA는 루트 CA 또는 중간 CA가 될 수 있습니다. Secrets Manager API를 사용하여 외부 서명이 있는 중간 CA를 만들 수 있습니다.
1단계: 중간 CA 및 서명 요청 작성
다음 예제는 외부 서명을 사용하여 중간 CA를 작성하는 데 사용할 수 있는 조회를 표시합니다. 요청 본문에서 signing_method 속성의 값을 external 로 설정하십시오.
curl -X POST
--H "Authorization: Bearer {iam_token}" \
--H "Accept: application/json" \
--H "Content-Type: application/json" \
--d '{
"config_type": "private_cert_configuration_intermediate_ca",
"name": "example-intermediate-CA",
"common_name": "example.com",
"crl_disable": false,
"crl_distribution_points_encoded": true,
"crl_expiry": "72h",
"issuer": "example-root-CA",
"issuing_certificates_urls_encoded": true,
"max_ttl": "26300h",
"signing_method": "external"
}' \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations"
직접 HSM을 가져오는 경우 요청에 다음 사항을 포함하세요:
"crypto_key": {
"label": "my_key",
"allow_generate_key": true,
"provider": {
"type": "hyper_protect_crypto_services",
"instance_crn": "replace_with_hpcs_crn::",
"pin_iam_credentials_secret_id": "replace_with_iam_credentials_secret_guid",
"private_keystore_id": "replace_with_keystore_id"
}
}
응답 JSON 데이터에서 CSR을 복사하십시오. CSR값은 응답의 data 속성 값 내에 중첩됩니다. get configuration API를 사용하여 새로 작성된 중간 CA의 데이터에서 CSR을 가져올 수도 있습니다.
2단계: 외부 CA를 사용하여 중간 CA에 서명
1단계에서복사한 CSR을 사용하여 중간 CA 인증서에 서명하십시오. 서명에 사용할 파일에 CSR을 넣으십시오.
다양한 도구(예: openssl) 중에서 선택하여 CSR 파일에 서명할 수 있습니다. 예를 들어 다음 openssl 명령은 CSR 파일을 가져와서 PEM-인코딩된 CA 파일과 연결된 개인 키를 사용하여 서명된 CA 인증서를 발급합니다.
openssl x509 -req -in <intermediate-ca-csr-file> -CA <external-parent-ca-file> -CAkey <external-ca-key-file> -out <signed-intermediate-ca-file>
이 명령은 서명 프로세스를 완료하기 위해 중간 CA 구성으로 가져올 수 있는 서명된 인증서 파일을 출력합니다.
상위 CA가 다른 Secrets Manager 인스턴스의 루트 CA 또는 중간 CA인 경우 sign-csr 조치를 사용하여 CSR에 서명할 수 있습니다. 다음 예는 CSR에 서명하는 데 사용할 수 있는 쿼리를 보여줍니다.
curl -X POST
--H "Authorization: Bearer {iam_token}" \
--H "Accept: application/json" \
--H "Content-Type: application/json" \
--d '{
"action_type": "private_cert_configuration_action_sign_csr",
"csr": "-----BEGIN CERTIFICATE REQUEST-----\nMIICiDCCAXACAQAwGDEWMBQGA1UEAxMNct5ANo8jybxCwNjHOA==\n-----END CERTIFICATE REQUEST-----"
}' \
"https://{other_instance_ID}.{other_instance_region}.secrets-manager.appdomain.cloud/api/v2/configurations/example-intermediate-CA/actions"
응답에서 certificate 필드의 값을 복사하여 다음 단계에서 사용하십시오.
3단계: 서명된 중간 CA를 중간 CA 구성으로 가져오기
외부 부모 CA를 사용하여 중간 CA 인증서에 서명한 후 set-signed 작업을 사용하여 중간 CA 구성으로 가져올 수 있습니다. 다음 예는 외부 서명 인증서를 가져오는 데 사용할 수 있는 쿼리를 보여 줍니다.
curl -X POST
--H "Authorization: Bearer {iam_token}" \
--H "Accept: application/json" \
--H "Content-Type: application/json" \
--d '{
"action_type": "private_cert_configuration_action_set_signed",
"certificate": "-----BEGIN CERTIFICATE-----\nMIIGRjCCBS6gAwIBAgIUSKW6zI+E9JU4bva\n-----END CERTIFICATE-----"
}' \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations/example-intermediate-CA/actions"
CLI에서 내부 서명을 사용하여 중간 CA 만들기
내부 서명이 있는 중간 CA는 이전에 Secrets Manager 인스턴스에서 작성된 상위 CA를 신뢰 앵커로 사용합니다. Secrets Manager CLI를 사용하여 내부 서명이 있는 중간 CA를 만들 수 있습니다.
1단계: 내부 서명을 사용하여 중간 CA 작성
내부 서명을 사용하여 중간 CA를 작성하려면 ibmcloud secrets-manager configuration-create 명령을 실행하십시오.
구성 프로토타입에서 signing_method 속성의 값을 internal 로 설정하십시오. issuer 속성을 사용하여 상위 인증 기관을 지정하십시오. 예를 들어, 다음 명령은 내부 서명으로 중간 CA를 작성합니다.
ibmcloud secrets-manager configuration-create
--configuration-prototype='{
"config_type": "private_cert_configuration_intermediate_ca",
"name": "example-intermediate-CA",
"max_ttl": "26300h",
"signing_method": "internal",
"issuer": "example-root-CA",
"crl_expiry": "72h",
"crl_disable": false,
"crl_distribution_points_encoded": true,
"issuing_certificates_urls_encoded": true,
"common_name": "example.com",
"alt_names": [
"alt-name-1","alt-name-2"
],
"ip_sans": "127.0.0.1",
"uri_sans": "https://www.example.com/test",
"other_sans": ["1.2.3.5.4.3.201.10.4.3;utf8:test@example.com"],
"format": "pem",
"private_key_format": "der",
"key_type": "rsa",
"key_bits": 4096,
"exclude_cn_from_sans": false
}'
직접 HSM을 가져오는 경우 요청에 다음 사항을 포함하세요:
"crypto_key": {
"label": "my_key",
"allow_generate_key": true,
"provider": {
"type": "hyper_protect_crypto_services",
"instance_crn": "replace_with_hpcs_crn::",
"pin_iam_credentials_secret_id": "replace_with_iam_credentials_secret_guid",
"private_keystore_id": "replace_with_keystore_id"
}
}
2단계: 중간 CA 서명
Secrets Manager CLI에서 중간 CA에 서명하려면 ibmcloud secrets-manager configuration-action-create 명령을 실행하여 sign-intermediate 조치를 적용하십시오. --name 명령 옵션을 사용하여 서명 인증 기관 (발행자) 의 이름을 전달하십시오.
ibmcloud secrets-manager configuration-action-create --name example-root-CA
--config-action-prototype='{
"action_type": "private_cert_configuration_action_sign_intermediate",
"intermediate_certificate_authority": "example-intermediate-CA"
}'
CLI에서 외부 서명을 사용하여 중간 CA 만들기
외부 서명이 있는 중간 CA는 외부 PKI 시스템 또는 다른 Secrets Manager 인스턴스의 상위 CA를 신뢰 앵커로 사용합니다. 상위 CA는 루트 CA 또는 중간 CA가 될 수 있습니다. Secrets Manager CLI를 사용하여 외부 서명이 있는 중간 CA를 만들 수 있습니다.
1단계: 중간 CA 및 서명 요청 작성
Secrets Manager CLI에서 중간 CA를 작성하고 요청에 서명하려면 ibmcloud secrets-manager configuration-create 명령을 실행하십시오. 구성 프로토타입에서 signing_method 속성의 값을 external 로 설정하십시오. csr 속성의 값을 포함하는 전체 응답을 가져오려면 --output json 옵션을 사용하십시오. 예를 들어, 다음 명령은 외부 서명으로 중간 CA를 작성합니다.
ibmcloud secrets-manager configuration-create --output json
--configuration-prototype='{
"config_type": "private_cert_configuration_intermediate_ca",
"name": "example-intermediate-CA",
"max_ttl": "26300h",
"signing_method": "external",
"crl_expiry": "72h",
"crl_disable": false,
"crl_distribution_points_encoded": true,
"issuing_certificates_urls_encoded": true,
"common_name": "example.com",
"alt_names": [
"alt-name-1","alt-name-2"
],
"ip_sans": "127.0.0.1",
"uri_sans": "https://www.example.com/test",
"other_sans": ["1.2.3.5.4.3.201.10.4.3;utf8:test@example.com"],
"format": "pem",
"private_key_format": "der",
"key_type": "rsa",
"key_bits": 4096,
"exclude_cn_from_sans": false
}'
응답 JSON 데이터에서 CSR을 복사하십시오. CSR값은 응답의 data 속성 값 내에 중첩됩니다. --output json 옵션과 함께 ibmcloud secrets-manager configuration 명령을 실행하여 새로 작성된 중간 CA의 데이터를 가져올 수도 있습니다. 예를 들어, 다음과 같습니다.
ibmcloud secrets-manager configuration --name example-intermediate-CA --output json
2단계: 외부 CA를 사용하여 중간 CA에 서명
1단계에서복사한 CSR을 사용하여 중간 CA 인증서에 서명하십시오. 서명에 사용할 파일에 CSR을 넣으십시오.
다양한 도구(예: openssl) 중에서 선택하여 CSR 파일에 서명할 수 있습니다. 예를 들어 다음 openssl 명령은 CSR 파일을 가져와서 PEM-인코딩된 CA 파일과 연결된 개인 키를 사용하여 서명된 CA 인증서를 발급합니다.
openssl x509 -req -in <intermediate-ca-csr-file> -CA <external-parent-ca-file> -CAkey <external-ca-key-file> -out <signed-intermediate-ca-file>
이 명령은 서명 프로세스를 완료하기 위해 중간 CA 구성으로 가져올 수 있는 서명된 인증서 파일을 출력합니다.
상위 CA가 다른 Secrets Manager 인스턴스의 루트 CA 또는 중간 CA인 경우 sign-csr 조치를 적용하여 CSR에 서명할 수 있습니다. 조치를 적용하려면 ibmcloud secrets-manager configuration-action-create 명령을 실행하십시오. 명령 출력에서 certificate 필드의 값을 복사하여 다음 단계에서 사용하십시오. 예를 들어, 상위 CA가 다른 Secrets Manager 인스턴스에서 이름이 example-root-CA 인 루트 CA인 경우 명령은 다음과 같습니다.
ibmcloud secrets-manager configuration-action-create --name example-root-CA --output json
--config-action-prototype='{
"action_type": "private_cert_configuration_action_sign_csr",
"csr": "-----BEGIN CERTIFICATE REQUEST-----\nMIICiDCCAXACAQAwGDEWMBQGA1UEAxMNct5ANo8jybxCwNjHOA==\n-----END CERTIFICATE REQUEST-----"
}'
sign-csr 작업의 경우 부모 CA가 있는 다른 Secrets Manager 인스턴스를 대상으로 지정해야 합니다. 명령을 실행하기 전에 다른 인스턴스를 대상으로 환경 변수 SECRETS_MANAGER_URL 를 내보내십시오.
3단계: 서명된 중간 CA를 중간 CA 구성으로 가져오기
외부 상위 CA를 사용하여 중간 CA 인증서에 서명한 후 set-signed 조치를 중간 CA 구성에 적용하여 중간 CA 구성으로 가져올 수 있습니다. 조치를 적용하려면 ibmcloud secrets-manager configuration-action-create 명령을 실행하십시오. 예를 들어, 다음과 같습니다.
ibmcloud secrets-manager configuration-action-create --name example-intermediate-CA
--config-action-prototype='{
"action_type": "private_cert_configuration_action_set_signed",
"certificate": "-----BEGIN CERTIFICATE-----\nMIIGRjCCBS6gAwIBAgIUSKW6zI+E9JU4bva\n-----END CERTIFICATE-----"
}'
Terraform을 사용하여 내부 서명으로 중간 CA 작성
내부 서명이 있는 중간 CA는 이전에 Secrets Manager 인스턴스에서 작성된 상위 CA를 신뢰 앵커로 사용합니다. Secrets Manager 에 Terraform을 사용하여 내부 서명이 있는 중간 CA를 만들 수 있습니다.
다음 예제는 내부 서명으로 중간 CA를 작성하는 데 사용할 수 있는 구성을 보여줍니다.
resource "ibm_sm_private_certificate_configuration_intermediate_ca" "my_intermediate_ca" {
instance_id = local.instance_id
signing_method = "internal"
name = "example-intermediate-ca"
common_name = "example.com"
issuer = ibm_sm_private_certificate_configuration_root_ca.my_root_ca.name
max_ttl = "180000"
}
자체 HSM을 가져오는 경우 구성에 다음을 포함하세요:
crypto_key {
label = "my_key"
allow_generate_key = true
provider {
type = "hyper_protect_crypto_services"
instance_crn = "replace_with_hpcs_crn::"
pin_iam_credentials_secret_id = "replace_with_iam_credentials_secret_guid"
private_keystore_id = "replace_with_keystore_id"
}
}
내부 서명을 사용할 때 정의된 발행자가 새로 작성된 중간 CA 인증서를 자동으로 서명합니다.
Terraform으로 외부 서명을 사용하여 중간 CA 만들기
외부 서명이 있는 중간 CA는 외부 PKI 시스템 또는 다른 Secrets Manager 인스턴스의 상위 CA를 신뢰 앵커로 사용합니다. 상위 CA는 루트 CA 또는 중간 CA가 될 수 있습니다. Secrets Manager에 대해 Terraform을 사용하여 외부 서명으로 중간 CA를 작성할 수 있습니다.
다음 예제는 외부 서명을 사용하여 중간 CA를 작성하는 데 사용할 수 있는 구성을 보여줍니다. 구성은 세 개의 자원으로 구성됩니다.
ibm_sm_private_certificate_configuration_intermediate_ca 자원은 중간 CA 구성 및 인증서 서명 요청을 작성합니다.
ibm_sm_private_certificate_configuration_action_sign_csr 자원은 다른 Secrets Manager 인스턴스의 루트 CA를 사용하여 CSR에 서명합니다.
ibm_sm_private_certificate_configuration_action_set_signed 자원은 서명된 인증서를 중간 CA 자원으로 가져옵니다.
resource "ibm_sm_private_certificate_configuration_intermediate_ca" "my_intermediate_ca" {
instance_id = local.instance_id
name = "example-intermediate-ca"
signing_method = "external"
common_name = "example.com"
max_ttl = "180000"
}
resource "ibm_sm_private_certificate_configuration_action_sign_csr" "my_sign_action" {
instance_id = local.another_instance_id
name = ibm_sm_private_certificate_configuration_root_ca.my_root_ca.name
csr = ibm_sm_private_certificate_configuration_intermediate_ca.my_intermediate_ca.data[0].csr
}
resource "ibm_sm_private_certificate_configuration_action_set_signed" "my_set_signed_action" {
instance_id = local.instance_id
name = ibm_sm_private_certificate_configuration_intermediate_ca.my_intermediate_ca.name
certificate = ibm_sm_private_certificate_configuration_action_sign_csr.my_sign_action.data[0].certificate
}
이 예에서는 루트 CA가 다른 Secrets Manager 인스턴스에 있기 때문에 외부 서명을 사용합니다. 외부 PKI 시스템에서 상위 CA를 사용하려면, CSR 서명에 대해 ' ibm_sm_private_certificate_configuration_action_sign_csr ' 리소스 대신 다른 방법을 사용하십시오. 예를 들어, tls 제공자의 tls_locally_signed_cert 자원을 사용할 수 있습니다.
자체 HSM을 가져오는 경우 구성에 다음을 포함하세요:
crypto_key {
label = "my_key"
allow_generate_key = true
provider {
type = "hyper_protect_crypto_services"
instance_crn = "replace_with_hpcs_crn::"
pin_iam_credentials_secret_id = "replace_with_iam_credentials_secret_guid"
private_keystore_id = "replace_with_keystore_id"
}
}
UI에서 중간 CA 검색
Secrets Manager UI를 사용하여 중간 CA값을 검색할 수 있습니다.
- 공용 인증서 시크릿 엔진에서 조치 메뉴
을 클릭하여 엔진 구성에 대한 옵션 목록을 여십시오.
- 구성 값을 보려면 구성 보기를 클릭합니다.
- 안전한 환경에 있는지 확인한 후 확인 을 클릭하십시오.
시크릿 값이 15초동안 표시되면 대화 상자가 닫힙니다.
CLI를 사용하여 중간 CA 검색
Secrets Manager CLI를 사용하여 중간 CA값을 검색할 수 있습니다. 다음 예제 명령에서 엔진 구성 이름을 사용자의 구성 이름으로 바꾸십시오.
ibmcloud secrets-manager configuration --name EXAMPLE_CONFIG --service-url https://{instance_ID}.{region}.secrets-manager.appdomain.cloud
{instance_ID} 및 {region}을 Secrets Manager 서비스 인스턴스에 적용되는 값으로 바꾸십시오. 인스턴스에 특정한 엔드포인트 URL을 찾으려면 Secrets Manager UI의 엔드포인트 페이지에서 복사할 수 있습니다. 자세한 정보는 엔드포인트 URL 보기를
참조하십시오.
API를 사용하여 중간 CA 검색
Secrets Manager API를 사용하여 중간 CA값을 검색할 수 있습니다. 다음 예제 요청에서 엔진 구성 이름을 구성 이름으로 바꾸십시오.
curl -X GET --location --header "Authorization: Bearer {iam_token}" \
--header "Accept: application/json" \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations/{name}"
{instance_ID} 및 {region}을 Secrets Manager 서비스 인스턴스에 적용되는 값으로 바꾸십시오. 인스턴스에 특정한 엔드포인트 URL을 찾으려면 Secrets Manager UI의 엔드포인트 페이지에서 복사할 수 있습니다. 자세한 정보는 엔드포인트 URL 보기를
참조하십시오.
성공적인 응답은 다른 메타데이터와 함께 엔진 구성 값을 반환합니다. 필수 및 선택적 요청 매개변수에 대한 자세한 내용은 비밀번호 가져오기를 참조하세요.