Azure Stack Hub PKI 인증서 유효성 검사
이 문서에 설명된 Azure Stack Hub 준비 검사 도구는 PowerShell 갤러리 에서 사용할 수 있습니다. 이 도구를 사용하여 생성된 PKI(공개 키 인프라) 인증서 사전 배포에 적합한지 확인합니다. 필요한 경우 인증서를 테스트하고 다시 발급할 충분한 시간을 남겨 인증서의 유효성을 검사합니다.
준비 검사 도구는 다음 인증서 유효성 검사를 수행합니다.
- PFX 구문 분석
유효한 PFX 파일, 올바른 암호 및 공개 정보가 암호로 보호되는지 여부를 확인합니다. -
만료 날짜
7일의 최소 유효성을 확인합니다. -
서명 알고리즘
서명 알고리즘이 SHA1이 아닌지 확인합니다. -
프라이빗 키
프라이빗 키가 있고 로컬 컴퓨터 특성으로 내보내지는지 확인합니다. -
인증서 체인
자체 서명된 인증서에 대한 검사를 포함하여 인증서 체인이 손상되지 않은지 확인합니다. - DNS 이름
SAN에 각 엔드포인트에 대한 관련 DNS 이름이 포함되어 있는지 또는 지원 와일드카드가 있는지 확인합니다. -
키 사용량
키 사용량에 디지털 서명 및 키 암호화가 포함되어 있는지 확인하고 향상된 키 사용량에 서버 인증 및 클라이언트 인증이 포함되어 있는지 확인합니다. -
키 크기
키 크기가 2048 이상인지 확인합니다. -
체인 순서
주문이 올바른지 확인하는 다른 인증서의 순서를 확인합니다. -
기타 인증서
관련 리프 인증서 및 해당 체인 이외의 다른 인증서가 PFX로 패키지되지 않았는지 확인합니다.
중요하다
PKI 인증서는 PFX 파일이며 암호는 중요한 정보로 처리되어야 합니다.
필수 구성 요소
시스템은 Azure Stack Hub 배포에 대한 PKI 인증서의 유효성을 검사하기 전에 다음 필수 조건을 충족해야 합니다.
- Microsoft Azure Stack Hub 준비 검사기.
- SSL 인증서는 준비 지침에 따라 내보내졌습니다.
- DeploymentData.json.
- Windows 10 또는 Windows Server 2016.
핵심 서비스 인증서 유효성 검사 수행
다음 단계를 사용하여 배포 및 비밀 회전에 대한 Azure Stack Hub PKI 인증서의 유효성을 검사합니다.
다음 cmdlet을 실행하여 PowerShell 프롬프트(5.1 이상)에서 AzsReadinessChecker 설치합니다.
Install-Module Microsoft.AzureStack.ReadinessChecker -Force -AllowPrerelease
인증서 디렉터리 구조를 만듭니다. 아래 예제에서는
<C:\Certificates\Deployment>
원하는 새 디렉터리 경로로 변경할 수 있습니다.New-Item C:\Certificates\Deployment -ItemType Directory $directories = 'ACSBlob', 'ACSQueue', 'ACSTable', 'Admin Extension Host', 'Admin Portal', 'ARM Admin', 'ARM Public', 'KeyVault', 'KeyVaultInternal', 'Public Extension Host', 'Public Portal' $destination = 'C:\Certificates\Deployment' $directories | % { New-Item -Path (Join-Path $destination $PSITEM) -ItemType Directory -Force}
메모
AD FS를 ID 시스템으로 사용하는 경우 AD FS 및 그래프가 필요합니다. 예를 들어:
$directories = 'ACSBlob', 'ACSQueue', 'ACSTable', 'ADFS', 'Admin Extension Host', 'Admin Portal', 'ARM Admin', 'ARM Public', 'Graph', 'KeyVault', 'KeyVaultInternal', 'Public Extension Host', 'Public Portal'
- 이전 단계에서 만든 적절한 디렉터리에 인증서를 배치합니다. 예를 들어:
C:\Certificates\Deployment\ACSBlob\CustomerCertificate.pfx
C:\Certificates\Deployment\Admin Portal\CustomerCertificate.pfx
C:\Certificates\Deployment\ARM Admin\CustomerCertificate.pfx
- 이전 단계에서 만든 적절한 디렉터리에 인증서를 배치합니다. 예를 들어:
PowerShell 창에서 Azure Stack Hub 환경에 적합한
RegionName
,FQDN
및IdentitySystem
값을 변경하고 다음 cmdlet을 실행합니다.$pfxPassword = Read-Host -Prompt "Enter PFX Password" -AsSecureString Invoke-AzsHubDeploymentCertificateValidation -CertificatePath C:\Certificates\Deployment -pfxPassword $pfxPassword -RegionName east -FQDN azurestack.contoso.com -IdentitySystem AAD
출력을 확인하고 모든 인증서가 모든 테스트를 통과하는지 확인합니다. 예를 들어:
Invoke-AzsHubDeploymentCertificateValidation v1.2005.1286.272 started. Testing: KeyVaultInternal\KeyVaultInternal.pfx Thumbprint: E86699****************************4617D6 PFX Encryption: OK Expiry Date: OK Signature Algorithm: OK DNS Names: OK Key Usage: OK Key Length: OK Parse PFX: OK Private Key: OK Cert Chain: OK Chain Order: OK Other Certificates: OK Testing: ARM Public\ARMPublic.pfx Thumbprint: 8DC4D9****************************69DBAA PFX Encryption: OK Expiry Date: OK Signature Algorithm: OK DNS Names: OK Key Usage: OK Key Length: OK Parse PFX: OK Private Key: OK Cert Chain: OK Chain Order: OK Other Certificates: OK Testing: Admin Portal\AdminPortal.pfx Thumbprint: 6F9055****************************4AC0EA PFX Encryption: OK Expiry Date: OK Signature Algorithm: OK DNS Names: OK Key Usage: OK Key Length: OK Parse PFX: OK Private Key: OK Cert Chain: OK Chain Order: OK Other Certificates: OK Testing: Public Portal\PublicPortal.pfx Log location (contains PII): C:\Users\[*redacted*]\AppData\Local\Temp\AzsReadinessChecker\AzsReadinessChecker.log Report location (contains PII): C:\Users\[*redacted*]\AppData\Local\Temp\AzsReadinessChecker\AzsReadinessCheckerReport.json Invoke-AzsHubDeploymentCertificateValidation Completed
다른 Azure Stack Hub 서비스에 대한 인증서의 유효성을 검사하려면
-CertificatePath
값을 변경합니다. 예를 들어:# App Services Invoke-AzsHubAppServicesCertificateValidation -CertificatePath C:\Certificates\AppServices -pfxPassword $pfxPassword -RegionName east -FQDN azurestack.contoso.com # DBAdapter Invoke-AzsHubDBAdapterCertificateValidation -CertificatePath C:\Certificates\DBAdapter -pfxPassword $pfxPassword -RegionName east -FQDN azurestack.contoso.com # EventHubs Invoke-AzsHubEventHubsCertificateValidation -CertificatePath C:\Certificates\EventHubs -pfxPassword $pfxPassword -RegionName east -FQDN azurestack.contoso.com
각 폴더에는 인증서 유형에 대한 단일 PFX 파일이 포함되어야 합니다. 인증서 유형에 다중 인증서 요구 사항이 있는 경우 각 개별 인증서에 대한 중첩된 폴더가 예상되고 이름을 구분합니다. 다음 코드는 모든 인증서 유형에 대한 예제 폴더/인증서 구조와
-CertificatePath
적절한 값을 보여 냅니다.C:\>tree c:\SecretStore /A /F Folder PATH listing Volume serial number is 85AE-DF2E C:\SECRETSTORE \---AzureStack +---CertificateRequests \---Certificates +---AppServices # Invoke-AzsCertificateValidation ` | +---API # -CertificatePath C:\Certificates\AppServices | | api.pfx | | | +---DefaultDomain | | wappsvc.pfx | | | +---Identity | | sso.pfx | | | \---Publishing | ftp.pfx | +---DBAdapter # Invoke-AzsCertificateValidation ` | dbadapter.pfx # -CertificatePath C:\Certificates\DBAdapter | | +---Deployment # Invoke-AzsCertificateValidation ` | +---ACSBlob # -CertificatePath C:\Certificates\Deployment | | acsblob.pfx | | | +---ACSQueue | | acsqueue.pfx ./. ./. ./. ./. ./. ./. ./. <- Deployment certificate tree trimmed. | \---Public Portal | portal.pfx | \---EventHubs # Invoke-AzsCertificateValidation ` eventhubs.pfx # -CertificatePath C:\Certificates\EventHubs
알려진 문제
증상: 테스트가 건너뛰어집니다.
원인: 종속성이 충족되지 않는 경우 AzsReadinessChecker는 특정 테스트를 건너뜁니다.
인증서 체인이 실패할 경우 다른 인증서를 건너뜁니다.
Testing: ACSBlob\singlewildcard.pfx Read PFX: OK Signature Algorithm: OK Private Key: OK Cert Chain: OK DNS Names: Fail Key Usage: OK Key Size: OK Chain Order: OK Other Certificates: Skipped Details: The certificate records '*.east.azurestack.contoso.com' do not contain a record that is valid for '*.blob.east.azurestack.contoso.com'. Please refer to the documentation for how to create the required certificate file. The other certificates check was skipped because cert chain and/or DNS names failed. Follow the guidance to remediate those issues and recheck. Log location (contains PII): C:\Users\username\AppData\Local\Temp\AzsReadinessChecker\AzsReadinessChecker.log Report location (contains PII): C:\Users\username\AppData\Local\Temp\AzsReadinessChecker\AzsReadinessCheckerReport.json Invoke-AzsCertificateValidation Completed
결의: 각 인증서의 각 테스트 세트 아래에 있는 세부 사항 섹션에서 도구의 지침을 따릅니다.
증상: http CDP가 x509 확장에 기록되어 있음에도 불구하고 HTTP CRL 검사가 실패합니다.
원인: 현재 AzsReadinessChecker 일부 언어에서 HTTP CDP를 확인할 수 없습니다.
해결: OS 언어가 EN-US로 설정된 유효성 검사를 실행합니다.
인증서
디렉토리 | 증명서 |
---|---|
ACSBlob | wildcard_blob_<region>_<externalFQDN> |
ACSQueue | wildcard_queue_<region>_<externalFQDN> |
ACSTable | wildcard_table_<region>_<externalFQDN> |
관리자 확장 호스트 | wildcard_adminhosting_<region>_<externalFQDN> |
관리 포털 | adminportal_<region>_<externalFQDN> |
ARM 관리자 | adminmanagement_<region>_<externalFQDN> |
ARM 퍼블릭 | management_<region>_<externalFQDN> |
KeyVault | wildcard_vault_<region>_<externalFQDN> |
KeyVaultInternal | wildcard_adminvault_<region>_<externalFQDN> |
공용 확장 호스트 | wildcard_hosting_<region>_<externalFQDN> |
공용 포털 | portal_<region>_<externalFQDN> |
다음 단계
AzsReadinessChecker에서 인증서의 유효성을 검사하면 Azure Stack Hub 배포 또는 배포 후 비밀 회전에 사용할 준비가 된 것입니다.
- 배포의 경우 Azure Stack Hub PKI 요구 사항에 지정된 대로 배포 가상 머신 호스트에 인증서를 복사할 수 있도록 배포 엔지니어에게 인증서를 안전하게 전송합니다. 필수 인증서는.
- 비밀 회전에 대해서는 Azure Stack Hub에서 비밀 회전을 참조하세요. 부가 가치 리소스 제공자의 인증서 회전은 외부 비밀 회전 섹션에서 다룹니다.