2011-08-02 14 views
1

WAPPAコマンドadd-certificateコマンドを使用して、Azureに証明書をアップロードしようとするときに何か問題があります。wapコマンドレット - 証明書の追加エラー

add-certificate -ServiceName myService -CertificateToDeploy ".\mycert.cer" -SubscriptionId 1234c88c-xxxx-xxxx-ad88-888c6ec5fc4a -Certificate (get-item cert:\CurrentUser\My\0E5A777B38724D85F415E011192D2EF888888884) 

そして、これが来る続けエラーです:

これは私がPowerShellで実行しているものです。

Add-Certificate : The index value is not valid. At line:1 char:16 + add-certificate <<...(removed repeat of command)... + CategoryInfo : CloseError: (:) [Add-Certificate], CryptographicException + FullyQualifiedErrorId : Microsoft.Samples.AzureManagementTools.PowerShell.Certificates.AddCertificateCommand

私たちは、serviceNameのとsubscriptionIdが正しいと私たちは他のパラメータが同様に適切であるように見える見つけることができるすべての例を見ている確信している...しかし、明らかに1つ(または両方)それらのではありません。私たちは理由を見ることができません。

任意の提案を大幅に追加-certificateコマンドは、ホストされたサービスに(通常は秘密鍵を使用して)証明書をアップロードするためのものです

答えて

1

:-)感謝しています。 IIRCでは、.cerファイルを.pfxラッパーでラップし、簡単なパスワードでアップロードします。これは、ポータルが証明書でパスワードを要求していたためです(個人が秘密鍵で証明書をアップロードしたと仮定しているため)。そのコードパス内の何かが、暗号例外に基づいて間違っている可能性があります。私はスタックトレースの多くが見たいと思う。

pfx(エクスポート可能な鍵付き)をアップロードした場合、それは機能しますか? .cerファイルとパスワードの不足のために単なる問題ですか?

別の考え方:-ServiceNameパラメータは、DNS名(servicename.cloudapp.net)に解決されるため、大文字と小文字が区別される可能性があります。すべて小文字を使用していることを確認できますか?

編集:もう1つの考え方 - システムに.cerをインポートし、get-item cert:formatを使用してもう一度それを参照してみてください。コードを見ると、pfxでないときに指定されたファイルパスで正しく動作するかどうかは完全にはわかりません。 .cerファイルを空のパスワードでインポートすると失敗することがあります。答えを

private byte[] GetCertificateData() 
    { 
     var cert = new X509Certificate2(); 
     byte[] certData = null; 

     if (((this.CertificateToDeploy is PSObject) && ((PSObject)this.CertificateToDeploy).ImmediateBaseObject is X509Certificate) || 
      (this.CertificateToDeploy is X509Certificate)) 
     { 
      cert = ((PSObject)this.CertificateToDeploy).ImmediateBaseObject as X509Certificate2; 

      try 
      { 
       certData = cert.HasPrivateKey ? cert.Export(X509ContentType.Pfx) : cert.Export(X509ContentType.Pkcs12); 
      } 
      catch (CryptographicException) 
      { 
       certData = cert.HasPrivateKey ? cert.RawData : cert.Export(X509ContentType.Pkcs12); 
      } 
     } 
     else 
     { 
      cert.Import(this.ResolvePath(this.CertificateToDeploy.ToString()), this.Password, X509KeyStorageFlags.Exportable); 
      certData = cert.HasPrivateKey ? cert.Export(X509ContentType.Pfx, this.Password) : cert.Export(X509ContentType.Pkcs12); 
     } 

     return certData; 
    } 
+0

おかげで、まだ調査が、私は多分問題は私たちの.cerファイルをエクスポートすることができないということだと思う:それは私だけが私の内部(の心)デバッガを見抜くのコードを実行することです。 MMCプラグインから手動でこれを行うと、 'pfx'エクスポートオプションがグレー表示されます。したがって、私たちは.cerプロバイダが秘密鍵を「エクスポート可能」とマークした場合、これを確認しています。 http://serverfault.com/questions/83143/convert-p7b-key-to-a-pfx – wallismark

+0

.cerファイルは公開鍵です。時々あなたはそれらをインポートする必要がありますが、より頻繁にプライベートキー側であるpfxが欲しいです。 .cerが本当に必要な場合は、pfxコンテナにラップしてアップロードするプロセスがあります。 – dunnry

関連する問題