4

管理サービス ( REST APIなど) を呼び出して関連サービスに関する情報を収集したい Azure Worker ロールがあります。ただし、証明書を読み込もうとすると、見つかりません。私が従った手順は次のとおりです。

1. MakeCert を使用して証明書を作成し、ポータル経由で管理証明書として登録しました

makecert -r -pe -a sha1 -n "CN=MyCnName" -ss My -len 2048 -sp "Microsoft Enhanced RSA and AES Cryptographic Provider" -sy 24 MyCert.cer

2.証明書をローカル マシンにインストールすると、すべて正常に動作します。Worker ロールをローカルで実行すると、管理サービスを問題なく呼び出すことができます。

3.自分のマシンから証明書をエクスポートし、エクスポートした証明書をポータル経由で対象のホステッド サービスに登録しました

4.ロールをデプロイしました。役割が開始されると、証明書が見つかりません。

これは、証明書を見つけるために使用しているコードの抜粋です。

// Open the certificate store for the current user.
var certStore = new X509Store(StoreName.My, StoreLocation.CurrentUser); // I also tried localmachine
certStore.Open(OpenFlags.ReadOnly);

// Find the certificate with the specified subject.
X509Certificate2Collection certCollection = certStore.Certificates.Find(
    X509FindType.FindBySubjectName,
    _myConfiguration.SubjectName,
    false);


if (certCollection == null || certCollection.Count < 1)
{
    // Find the certificate with the specified thumbprint.
    certCollection = certStore.Certificates.Find(
        X509FindType.FindByThumbprint,
        _myConfiguration.ThumbPrint,
        false);
}

// Close the certificate store.
certStore.Close();

// Check to see if a matching certificate was found.
if (certCollection.Count == 0)
{
    _logger.Warn("No certificate found");
}

例外はなく、証明書が見つからないだけです。誰かが私がしなければならないことを明らかにすることができますか?

4

2 に答える 2

8

問題を解決しました...ポータルで証明書を構成することに加えて、証明書の詳細 (名前、ストア、拇印などCertificates) をタブの下の Azure プロジェクト ロール設定に追加する必要がありました。

于 2012-07-15T22:17:20.657 に答える