4

Trusted PeopleWorker ロールのストアにデプロイされた公開鍵証明書を取得するにはどうすればよいですか?

私はPeerTrustWCF (Azure の自己ホスト型 TCP サービス) に使用しています:

var creds = new ServiceCredentials();
creds.ClientCertificate.Authentication.CertificateValidationMode = X509CertificateValidationMode.PeerTrust;

.csdef私は自分とコードの両方で証明書を参照する方法を知っています。ただし、.cerファイルを (秘密キーなしで) 取得し、実際に Azure に取得して、PeerTrust に使用できるようにする方法がわかりません。オンライン ポータルの証明書マネージャーでは、.pfxファイル (つまり、秘密鍵を含む証明書) のみをアップロードできます。

4

2 に答える 2

3

System.Security.Cryptography.X509Certificates.X509Storeと を使用して役割が開始されたときに、コードから CER をインストールできるかどうかを考えていますSystem.Security.Cryptography.X509Certificates.X509Certificates2。「出力ディレクトリにコピー = 常にコピー」を使用して、CER をプロジェクトに含めることができます。

于 2013-02-19T02:40:55.583 に答える
2

常にそうであるとは限りませんが、現在ではカスタム作業をまったく行わずにこれを行うことができます。サービスの (クラウド サービス定義) ファイルを編集して.csdef、以下を含めるか、Visual Studio を使用している場合は、worker ロールのプロパティ パネルを使用します。

<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="MyService" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2013-10.2.2">
  <WorkerRole name="MyService.Backend" ... >
    <Certificates>
      <Certificate name="backend.example.com.selfsigned" storeLocation="LocalMachine" storeName="My" />
      <Certificate name="frontend.example.com.selfsigned" storeLocation="LocalMachine" storeName="TrustedPeople" />
    </Certificates>
    <Endpoints>
      <InternalEndpoint name="Internal" protocol="tcp" port="..." />
    </Endpoints>
    ...
  </WorkerRole>
  <WebRole name="MyService.Frontend" ... >
    <Sites>
      <Site name="Web">
        <Bindings>
          <Binding name="WebsitePublicEndpoint" endpointName="Insecure" />
          <Binding name="WebsitePublicEndpoint" endpointName="Secure" />
        </Bindings>
      </Site>
    </Sites>
    <Endpoints>
      <InputEndpoint name="Insecure" protocol="http" port="80" />
      <InputEndpoint name="Secure" protocol="https" port="443" certificate="example.com" />
    </Endpoints>
    <Certificates>
      <Certificate name="backend.example.com" storeLocation="LocalMachine" storeName="TrustedPeople" />
      <Certificate name="frontend.example.com" storeLocation="LocalMachine" storeName="My" />
      <Certificate name="example.com" storeLocation="LocalMachine" storeName="My" />
    </Certificates>
    ...
  </WebRole>
</ServiceDefinition>

このフォーラム スレッドワーカー ロール サービス定義ファイルのスキーマ ドキュメントも参照してください。

また、Azure portal では、.cer(公開キーのみの) 証明書ファイルのアップロードがサポートされるようになりました。[ファイルを開く] ダイアログの選択フィルターを変更する必要がある場合があります。デフォルトでは、.pfxファイルのみを検索するように設定されています。

于 2014-03-13T21:26:30.193 に答える