39

CertUtil を使用して、pfx ファイルからユーザーの個人用ストアに証明書をインポートするのは比較的簡単です。

certutil –f –p [certificate_password] –importpfx C:\[certificate_path_and_name].pfx 

しかし、これは現在のユーザーのパーソナル ストアに格納されます。LocalMachine の TrustedPeople で必要です。

certutil importpfx で別の引数を呼び出すか、別の certutil コマンドまたは別のユーティリティを使用して、コマンド ラインからこれを行う方法はありますか? 私はそれについてあまり知りませんが、Powershell も別の可能性です。

乾杯、マット

4

7 に答える 7

69

将来の読者のために、私の調査結果をここに固定します。

証明書をローカル マシンの信頼されたルート証明機関にインポートします。

CERTUTIL -addstore -enterprise -f -v root "somCertificat.cer"

pfx をローカル マシンの Personal にインポートする

CERTUTIL -f -p somePassword -importpfx "somePfx.pfx"

ローカル マシン上の Trusted People に pfx をインポートする - importpfx.exe へのリンク

importpfx.exe -f "somePfx.pfx" -p "somePassword" -t MACHINE -s "TRUSTEDPEOPLE"

証明書をローカル マシンの Trusted People にインポートする

Certutil -addstore -f "TRUSTEDPEOPLE" "someCertificate.cer"
于 2011-08-31T16:31:23.773 に答える
9

これを探している他の人にはcertutil -importpfx、特定のストアで使用できませんでした。ファイルを多数のサーバーにコピーする必要を避けるために、jaspernygaard の回答で提供されている importpfx ツールをダウンロードしたくありませんでした。 . ここに示されているpowershellスクリプトで答えを見つけることになりました。

このコードはSystem.Security.Cryptography.X509Certificates、証明書をインポートしてから、目的のストアに移動するために使用します。

function Import-PfxCertificate { 

    param([String]$certPath,[String]$certRootStore = "localmachine",[String]$certStore = "My",$pfxPass = $null) 
    $pfx = new-object System.Security.Cryptography.X509Certificates.X509Certificate2 

    if ($pfxPass -eq $null) 
    {
        $pfxPass = read-host "Password" -assecurestring
    } 

    $pfx.import($certPath,$pfxPass,"Exportable,PersistKeySet") 
    
    $store = new-object System.Security.Cryptography.X509Certificates.X509Store($certStore,$certRootStore) 
    $store.open("MaxAllowed") 
    $store.add($pfx) 
    $store.close() 
}
于 2014-01-20T21:09:26.697 に答える
6

次のリンクを確認してください: http://www.orcsweb.com/blog/james/powershell-ing-on-windows-server-how-to-import-certificates-using-powershell/

インポート証明書: http://poshcode.org/1937

次のようなことができます:

dir -Path C:\Certs -Filter *.cer | Import-Certificate -CertFile $_ -StoreNames AuthRoot, Root -LocalMachine -Verbose
于 2011-03-02T17:38:51.043 に答える
4

Windows 10 の場合:

現在のユーザーの信頼されたルート証明機関に証明書をインポートします。

certutil -f -user -p oracle -importpfx root "example.pfx"

現在のユーザーの信頼できるユーザーに証明書をインポートします。

certutil -f -user -p oracle -importpfx TrustedPeople "example.pfx"

証明書をローカル マシンの信頼されたルート証明機関にインポートします。

certutil -f -user -p oracle -enterprise -importpfx root "example.pfx"

証明書をローカル マシンの信頼できるユーザーにインポートします。

certutil -f -user -p oracle -enterprise -importpfx TrustedPeople "example.pfx"
于 2017-06-22T03:23:24.637 に答える
1

完全なコードは次のとおりです。pfx をインポートし、iis Web サイトを追加し、ssl バインディングを追加します。

$SiteName = "MySite"
$HostName = "localhost"
$CertificatePassword = '1234'
$SiteFolder = Join-Path -Path 'C:\inetpub\wwwroot' -ChildPath $SiteName
$certPath = 'c:\cert.pfx'


Write-Host 'Import pfx certificate' $certPath
$certRootStore = “LocalMachine”
$certStore = "My"
$pfx = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
$pfx.Import($certPath,$CertificatePassword,"Exportable,PersistKeySet") 
$store = New-Object System.Security.Cryptography.X509Certificates.X509Store($certStore,$certRootStore) 
$store.Open('ReadWrite')
$store.Add($pfx) 
$store.Close() 
$certThumbprint = $pfx.Thumbprint


Write-Host 'Add website' $SiteName
New-WebSite -Name $SiteName -PhysicalPath $SiteFolder -Force
$IISSite = "IIS:\Sites\$SiteName"
Set-ItemProperty $IISSite -name  Bindings -value @{protocol="https";bindingInformation="*:443:$HostName"}
if($applicationPool) { Set-ItemProperty $IISSite -name  ApplicationPool -value $IISApplicationPool }


Write-Host 'Bind certificate with Thumbprint' $certThumbprint
$obj = get-webconfiguration "//sites/site[@name='$SiteName']"
$binding = $obj.bindings.Collection[0]
$method = $binding.Methods["AddSslCertificate"]
$methodInstance = $method.CreateInstance()
$methodInstance.Input.SetAttributeValue("certificateHash", $certThumbprint)
$methodInstance.Input.SetAttributeValue("certificateStoreName", $certStore)
$methodInstance.Execute()
于 2016-01-13T19:18:23.780 に答える
0

新しいバージョンの Windows では、Certuil にストア名を指定できる [CertificateStoreName] があります。以前のバージョンの Windows では、これは不可能でした。

*.pfx 証明書をインストールしています: certutil -f -p "" -enterprise -importpfx root ""

*.cer 証明書のインストール: certutil -addstore -enterprise -f -v root ""

詳細については、以下のコマンドを Windows cmd で実行できます。C:>certutil -importpfx -? 使用法: CertUtil [オプション] -importPFX [証明書ストア名] PFXFile [修飾子]

于 2019-01-25T12:00:04.267 に答える