2019年5月12日日曜日

MySQL リソースプロバイダーを試したいので、Azure Stack の証明書を Validate します

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 のほうが敷居は低いことが分かっただけでも良いのかな。。。

0 件のコメント:

コメントを投稿