2017-09-29 14 views
0

私は、Asp.NET Core 1.1アプリケーションでAppleプッシュ証明書を使用しようとしていますが、証明書が見つかりません。Azure Webアプリケーション「ERR:Cert with thumbprint:...」がローカルマシンの証明書ストアに見つかりませんでした。

私はcertをアップロードし、WEBSITE_LOAD_CERTIFICATESを*(すべて)に設定しました。

次のコードは、私が何をしないのです証明書

var store = new X509Store(StoreName.My, StoreLocation.LocalMachine); 
    try 
    { 
     store.Open(OpenFlags.ReadOnly); 

     var certCollection = store.Certificates; 
     var signingCert = certCollection.Find(X509FindType.FindByThumbprint, thumbprint, false); 
     if (signingCert.Count == 0) 
     { 
      throw new FileNotFoundException(string.Format("Cert with thumbprint: '{0}' not found in local machine cert store.", thumbprint)); 
     } 
     return signingCert[0]; 
} 

を取得するために使用何ですか?

+1

あなたは 'StoreLocation.CurrentUser'でそれを試してみましたか?それが私のアプリケーションのインストールされた証明書にアクセスするためにAzureでやらなければならないことです。 [この回答](https://stackoverflow.com/questions/23827884/accessing-uploaded-certificates-in-azure-web-sites#answer-27819926)も参照してください。 – GeorgDangl

+0

はい、同じもの –

+0

WEBSITE_LOAD_CERTIFICATESをワイルドカードの代わりに拇印に設定するとどうなりますか? – GeorgDangl

答えて

1

upload your certificate to the certificates collection in Azure Websites and consume it in your web application from your site’s personal certificate storeと思われます。私は自分の証明書をアップロードし、次のコードをAsp.NET Core 1.1アプリケーションで使用するために使用します。

X509Certificate2 retVal = null; 

var thumbprint = "{cert_thumbprint}"; 
var store = new X509Store(StoreName.My, StoreLocation.CurrentUser); 

store.Open(OpenFlags.ReadOnly); 

var certCollection = store.Certificates; 

var signingCert = certCollection.Find(X509FindType.FindByThumbprint, thumbprint, false); 

if (signingCert.Count > 0) 
{ 
    retVal = signingCert[0]; 
} 

リモートデバッグ紺碧のウェブサイト上のコードとコードが正常に動作します

enter image description here

+0

あなたのコードは動作しています、ありがとう! :) –

+0

しかし、それは生産環境でのみ、デベロッパーはまだヌル証明書で動作します。 –

関連する問題