MySQL リソースプロバイダーを試したいので、Azure Stack の証明書を作りますの続き。
Validate Azure Stack PKI certificates
に基づいて進めてみました。

Fail がいくつか。
Root CA 配るポリシーを設定している AD ドメインメンバーで試してみます。

同じ Fail が出ました。
Azure Stack PKI 証明書に関する一般的な問題を修復する
の「キー使用法」に該当してます。
作り直しですね。。。
New-AzsCertificateSigningRequestで作った証明書要求用テキストファイルです。
[Version]
Signature="$Windows NT$"
[NewRequest]
Subject = "CN=portal.yksk.azs.sshzk2016.local,OU=AzureStack,O=Sashizaki,L=yksk,ST=Kanagawa,C=JP"
Exportable = TRUE ; Private key is not exportable
KeyLength = 2048 ; Common key sizes: 512, 1024, 2048, 4096, 8192, 16384
KeySpec = 1 ; AT_KEYEXCHANGE
KeyUsage = 0xA0 ; Digital Signature, Key Encipherment
MachineKeySet = True ; The key belongs to the local computer account
ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
ProviderType = 12
SMIME = FALSE
RequestType = PKCS10
HashAlgorithm = SHA256
; At least certreq.exe shipping with Windows Vista/Server 2008 is required to interpret the [Strings] and [Extensions] sections below
[Strings]
szOID_SUBJECT_ALT_NAME2 = "2.5.29.17"
szOID_ENHANCED_KEY_USAGE = "2.5.29.37"
szOID_PKIX_KP_SERVER_AUTH = "1.3.6.1.5.5.7.3.1"
szOID_PKIX_KP_CLIENT_AUTH = "1.3.6.1.5.5.7.3.2"
[Extensions]
%szOID_SUBJECT_ALT_NAME2% = "{text}dns=portal.yksk.azs.sshzk2016.local&dns=adminportal.yksk.azs.sshzk2016.local&dns=management.yksk.azs.sshzk2016.local&dns=adminmanagement.yksk.azs.sshzk2016.local&dns=*.blob.yksk.azs.sshzk2016.local&dns=*.queue.yksk.azs.sshzk2016.local&dns=*.table.yksk.azs.sshzk2016.local&dns=*.vault.yksk.azs.sshzk2016.local&dns=*.adminvault.yksk.azs.sshzk2016.local&dns=*.adminhosting.yksk.azs.sshzk2016.local&dns=*.hosting.yksk.azs.sshzk2016.local&dns=*.dbadapter.yksk.azs.sshzk2016.local&dns=*.appservice.yksk.azs.sshzk2016.local&dns=*.scm.appservice.yksk.azs.sshzk2016.local&dns=api.appservice.yksk.azs.sshzk2016.local&dns=ftp.appservice.yksk.azs.sshzk2016.local&dns=sso.appservice.yksk.azs.sshzk2016.local&dns=*.sso.appservice.yksk.azs.sshzk2016.local"
%szOID_ENHANCED_KEY_USAGE% = "{text}%szOID_PKIX_KP_SERVER_AUTH%,%szOID_PKIX_KP_CLIENT_AUTH%"
[RequestAttributes]
CertificateTemplate = Machine
AD CS の証明機関でエラーにならないよう、RequestAttributes の CetificateTemplate を定義しました。サーバー認証、クライアント認証が必要である旨、Invoke-AzsCertificateValidation の Fail 結果を踏まえました。
エンタープライズ CA ならば、Get-CATemplate でテンプレートの英語名を確認できます。
これで、Certreq し直します。
が、これが出てます。

※仮のAレコードを作るというフェイクは実施済み
比較のために、スタンドアロン CA を立ててやってみます。これなら証明書テンプレート周りのトラブルを回避できると安易に考えた。
※エンタープライズ CA の子 CA という位置づけ。
証明書作成要求用テキストファイルは、[RequestAttributes]は空のまま。
[Version]
Signature="$Windows NT$"
[NewRequest]
Subject = "CN=portal.yksk.azs.sshzk2016.local,OU=AzureStack,O=Sashizaki,L=yksk,ST=Kanagawa,C=JP"
Exportable = TRUE ; Private key is not exportable
KeyLength = 2048 ; Common key sizes: 512, 1024, 2048, 4096, 8192, 16384
KeySpec = 1 ; AT_KEYEXCHANGE
KeyUsage = 0xA0 ; Digital Signature, Key Encipherment
MachineKeySet = True ; The key belongs to the local computer account
ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
ProviderType = 12
SMIME = FALSE
RequestType = PKCS10
HashAlgorithm = SHA256
; At least certreq.exe shipping with Windows Vista/Server 2008 is required to interpret the [Strings] and [Extensions] sections below
[Strings]
szOID_SUBJECT_ALT_NAME2 = "2.5.29.17"
szOID_ENHANCED_KEY_USAGE = "2.5.29.37"
szOID_PKIX_KP_SERVER_AUTH = "1.3.6.1.5.5.7.3.1"
szOID_PKIX_KP_CLIENT_AUTH = "1.3.6.1.5.5.7.3.2"
[Extensions]
%szOID_SUBJECT_ALT_NAME2% = "{text}dns=portal.yksk.azs.sshzk2016.local&dns=adminportal.yksk.azs.sshzk2016.local&dns=management.yksk.azs.sshzk2016.local&dns=adminmanagement.yksk.azs.sshzk2016.local&dns=*.blob.yksk.azs.sshzk2016.local&dns=*.queue.yksk.azs.sshzk2016.local&dns=*.table.yksk.azs.sshzk2016.local&dns=*.vault.yksk.azs.sshzk2016.local&dns=*.adminvault.yksk.azs.sshzk2016.local&dns=*.adminhosting.yksk.azs.sshzk2016.local&dns=*.hosting.yksk.azs.sshzk2016.local&dns=*.dbadapter.yksk.azs.sshzk2016.local&dns=*.appservice.yksk.azs.sshzk2016.local&dns=*.scm.appservice.yksk.azs.sshzk2016.local&dns=api.appservice.yksk.azs.sshzk2016.local&dns=ftp.appservice.yksk.azs.sshzk2016.local&dns=sso.appservice.yksk.azs.sshzk2016.local&dns=*.sso.appservice.yksk.azs.sshzk2016.local"
%szOID_ENHANCED_KEY_USAGE% = "{text}%szOID_PKIX_KP_SERVER_AUTH%,%szOID_PKIX_KP_CLIENT_AUTH%"
[RequestAttributes]
スタンドアロン CA から発行した証明書をインポートしてみました。

ハイライトしたほうが今回作成した証明書です。目的にサーバー認証とクライアント認証が入ってます。
これをpfxにしてから Validate です。
Key Usage は、OK になったけど、Cert Chain はまだ Fail 。。。

エンタープライズ CA、スタンドアロン CA 両方の証明書は、インポートしているのですが。
うーむ、証明機関の居るドメインメンバーで確認したほうが良いのだろうか。。。
で、やってみましたが、状況変わらず。PaaS の証明書も validate やってます。
なんだかまだ負けた感あるものの、エンタープライズ CA よりは、スタンドアロン CA のほうが敷居は低いことが分かっただけでも良いのかな。。。