公開鍵証明書をARMを使用してAzure VMスケールにインストールしたいが、証明書へのローカルパスを正しく取得できない。DSCを使用してAzure VMに公開鍵証明書をインストールする方法
Configuration Example
{
param
(
[Parameter()]
[string[]]
$NodeName = 'localhost'
)
Import-DscResource -ModuleName xCertificate
Node $AllNodes.NodeName
{
xCertificateImport MyTrustedRoot
{
Thumbprint = 'c81b94933420221a7ac004a90242d8b1d3e5070d'
Location = 'LocalMachine'
Store = 'Root'
Path = '.\Certificate\MyTrustedRoot.cer'
}
}
}
私はPublish-AzureRmVMDscConfigurationコマンドレットにを使用しています:
私がこのコードサンプルを使用していますxCertificate
DSCモジュールにVMのscalesetsのためのPowerShell DSC拡張子を使用して証明書をインストールして使用することが可能ですAzureストレージアカウントにパブリックキー証明書とともにパッケージをアップロードし、DSCスクリプトをアップロードしてARM展開プロセスの一部として使用できるようにします。私はcerticateへのローカルパスを解決する方法を見つけ出すことはできません
しかし .\Certificate\MyTrustedRoot.cer
または$PSScriptRoot\Certificate\MyTrustedRoot.cer
を使用しているとき、私はエラーを取得する私はDSC内のファイルを解決するか、相対パスを使用するか可能であると思うだろうDSC設定を単純にして、証明書と一緒にパッケージ化します。
更新:Publish-AzureRmVMDscConfigurationは、DSCスクリプトと公開鍵証明書をzureストレージアカウントに圧縮してアップロードします。 VMSS DSCエクステンションはzipをダウンロードし、VM上でローカルに解凍してDSCを実行するので、証明書はスケールセット内のすべてのVM上にローカルに存在します。
しかし、使用されているDSCモジュールのバージョン番号のため、証明書へのパスが確定的ではありません。
にautoUpgradeMinorVersionを設定することがAzureストレージアカウントにアップロードおよびダウンロード、私はパブリッシュ・AzureRmVMDscConfigurationコマンドレットのため-AddtionalPathのPARAMを使用しているため、ローカルに存在するので、すべてがうまくzip形式で圧縮されていVMSS DSC拡張機能によってVMに解凍されます。だから私はちょうど.cerファイルをローカルで参照する必要があります。 RDPを使用してログインしてもファイルが見つかりましたが、パスは確定的ではありません。 – mikanyg
私は代わりにカスタムスクリプト拡張を使うことができると知っていますが、私は、証明書の場所を決定する方法を理解することができれば、DSCアプローチを好むでしょう。相対パスか、パラメータをDSC機能に追加します。 – mikanyg
ディスク上に置かれた証明書はどこだったのですか?私は確かにAzure DSC拡張が既知のパスに抽出すると確信しています... –