web-dev-qa-db-ja.com

WinHttpCertCfgが証明書をインポートしていません

サービスが使用するSSL証明書をインポートする展開スクリプトを設定する必要があります。 WinHttpCertCfgとCertMgrを使用してインポートしようとしましたが役に立ちませんでした。

これが私が両方で使用しようとしたコマンドライン引数です:

winhttpcertcfg.exe -i <certname>.pfx -c LOCAL_MACHINE\My -p <password> -a <user service runs as>

そして

CertMgr.exe -add -all -s -r localMachine -c <cert name> My

私が調査したところ、CertMgrではパスワードを使用して証明書をインポートできないようです。そのため、winhttpcertcfgを機能させたいと思います。

それらを実行すると、次の出力が得られます。WinHttpCertCfg:

Microsoft (R) WinHTTP Certificate Configuration Tool
Copyright (C) Microsoft Corporation 2001.

CertMgr:

CertMgr Succeeded

ただし、MMCでローカルマシンの証明書を調べるときは、サービスからそれらをロードするか、winhttpcertcfgを介してリストするか、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates\MY\Certificatesのレジストリを調べても見つかりません。 。

私は次のすべてを試しました:

  • 証明書を手動で(CertMgr.mscダイアログを介して)インストールすると、機能します。
  • インストールしているユーザーが管理者として実行されています
  • インストールするユーザーは、証明書へのフルアクセス権を持っています
  • 何かが間違っている(間違ったパスワード)と、ツールはエラーを出力します
  • 複数のマシンで試してみました(すべてサーバー2008 R2)

この時点で、私は公式にはアイデアがありません。

ありがとうございました。

1

私は答えを見つけました:

Winhttpcertcfgが証明書とWin2008のインストールに使用するライブラリバックエンドに問題があることが判明しました。別の方法があり、Powershellを使用して証明書をインストールすることです。 x509Certificate2 .NETクラスを使用するスクリプトを記述して、証明書を任意のストアにインポートできます。この方法では、必要な追加のチェックをより柔軟に実行できます。

詳細 ここ

0

常にCertUtil.exeがあります:

CertUtil -p Password -ImportPFX File.pfx

その他のオプションについては、こちらをご覧ください。
http://technet.Microsoft.com/en-us/library/cc732443.aspx

または試してみてください:

CertUtil -ImportPFX -?
0
pbarrette