2

タスクは、証明書をリモート サーバー (win2008 サーバー Web エディション/IIS7) にインポートすることです。

証明書は .pfx ファイルにあります。

インストール後、秘密鍵がクライアント サーバー (スクリプトの実行元) (C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys) に保存されているのに、宛先サーバー (証明書がインストールされている場所) には保存されていないことに気付きました。この証明書は、次のエラーでサイト バインドに使用できません。

指定されたログオン セッションが存在しません。すでに終了している可能性があります。

そう。証明書がリモート サーバーにインストールされていることがわかりますが、秘密鍵はインストールされていません。私は何を間違えましたか?

Dim pathToPFXFile As String = "\\CertServer\e$\tmp\CPVanitySSLInstall.pfx" 
    Dim passwordForPFXFile As String = "xxx"
    Dim WinVanitySSLTable As Data.DataTable
    Dim cert, cert1 As X509Certificate2
    Dim certs As X509Certificate2Collection
    Dim store As X509Store

    cert = New X509Certificate2(pathToPFXFile, passwordForPFXFile, X509KeyStorageFlags.MachineKeySet Or X509KeyStorageFlags.PersistKeySet Or X509KeyStorageFlags.Exportable)
    store = New X509Store("\\DestinationServerName\My", StoreLocation.LocalMachine)
    If (cert IsNot Nothing) Then
        store.Open(OpenFlags.MaxAllowed)
        store.Add(cert)
        store.Close()
    End If

ところで、宛先サーバー自体でこのスクリプトを実行すると、期待どおりに完全に機能します。これを除いて、リモート サーバー \DestinationServerName\C$\ProgramData\Microsoft\Crypto\RSA\MachineKeys のマシン キー ストアへのアクセスを確認しましたが、問題ありません。

4

1 に答える 1

2

Windows で証明書マネージャーを使用して、証明書に秘密鍵が関連付けられているかどうかを確認できます。リストで証明書を選択し、[開く] をクリックするか、秘密鍵を持っている小さなキーがある場合はアイコンを確認します。秘密鍵がある場合は、iis または asp.net アプリにアクセス許可があることを確認してください。C:\Users\All Users\Microsoft\Crypto\RSA\MachineKeys に秘密キー ファイルがあり、アクセス許可を確認できます。

于 2013-09-09T14:58:53.597 に答える