Windows Server 2012でリモートデスクトップ用に自己署名証明書を割り当てるというwmicアプローチを使用しようとしていますVM説明どおり ここ および ここ 。
RDP証明書のCAは[ローカルマシン]> [信頼されたルート証明機関]にインストールされ、RDP証明書自体は[ローカルマシン]> [リモートデスクトップ]にインストールされています。
インポートされたRDP証明書を使用するためにwmicコマンドを発行しようとすると、次のエラーが表示されます。
C:\Windows\system32> wmic /namespace:\\root\CIMV2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="3c7a7a78af9699b69182dff15329834113a518b3"
Updating property(s) of '\\SERVER\root\CIMV2\TerminalServices:Win32_TSGeneralSetting.TerminalName="RDP-Tcp"'
ERROR:
Description = Invalid parameter
...また、[ローカルマシン]> [個人]でRDP証明書をインポートしようとしましたが、エラーメッセージは変わりません。
同じ問題で3時間止まったが、問題の根本を発見した。私の場合、「無効なパラメーター」エラーの理由は、対応する秘密鍵なしで証明書を誤ってインポートしたことです。
したがって、[全般]タブで証明書を開くと、最後の行にキーシンボルと "この証明書に対応する秘密キーがあります"というテキストが表示されていることを確認してください。 秘密鍵付きの証明書
証明書とキーをpfxファイルに結合するのは非常に簡単です。こちらをご覧ください https://www.ssl.com/how-to/create-a-pfx-p12-certificate-file-using-openssl/
サムプリントの文字を小文字ではなく大文字にしてみてください。 Server 2012 R2では、何らかの理由で、wmicコマンドのサムプリントで小文字を使用しません。 d8f87e2cff8fcc5789f53b5539fc12a0b5eecba8はD8F87E2CFF8FCC5789F53B5539FC12A0B5EECBA8である必要があります。
「本来あるべき姿」でサムプリントを取得する最も簡単な方法は、Powershellを開いて次のコマンドでサムプリントを取得することでした。
Get-Childitem Cert:\LocalMachine\My
ローカルマシンの証明書のサムプリントが表示され、スペースや大文字の大文字は含まれません。
とにかく、この記事をチェックしてください、それは本当に良いです: https://ryanmangansitblog.com/2013/03/10/configuring-rds-2012-certificates-and-sso/
チェックリストを要約しようとすると、これが発生する可能性がある多くの方法があります。
これがあなたの問題を解決できることを願っています:D
このトピックに関連する 前の回答 について、誰かからのコメントの1つは、コマンドのwmicバージョンが2012 R2マシンでは機能しないと主張しましたが、Powershellの同等バージョンは機能しました。あなたはそれを試すかもしれません。同等のPowershellコマンドを次に示します。
$path = (gwmi -class "Win32_TSGeneralSetting" -Namespace root\cimv2\terminalservices -Filter "TerminalName='RDP-tcp'").__path
swmi -Path $path -argument @{SSLCertificateSHA1Hash="THUMBPRINT"}
証明書をコピーするとき、何らかの理由で最初に隠し文字があります。証明書のプロパティに移動するときは、非表示の文字なしで証明書をコピーしてください。コマンドの「無効なパラメーター」応答を見て、入力しようとした証明書を調べると、最初にボックス文字が表示されます。
使用している証明書のサーバー認証(1.3.6.1.5.5.7.3.1)が拡張キー使用法フィールドに設定されていることを確認してください。そうしないと、そのエラーが発生します。
私にもこの問題があり、私をここに連れてきました。私の解決策は、拇印(スペースと特殊な先行文字を削除した後)が証明書の拇印を正確に反映していることを再確認することでした。末尾の数字が抜けていました。追加すると、「プロパティの更新が成功しました。頑張ってください。
上記のコマンドが期待どおりに機能していなかったことがわかりました。コマンドを手動で入力した後、それはうまくいきました、何が起こったのかわかりませんが、念のためここで私が使ったものです
$TSGS = Get-WmiObject -Class "Win32_TSGeneralSetting" -Namespace "root\cimv2\terminalservices"
Set-WmiInstance -Path $TSGS -Arguments @{SSLCertificateSHA1Hash="4adcffbcf35ba044d93108ae2e2c51fa3c3fc983"}