1

Azure/Windows側から..。

http://msdn.microsoft.com/en-us/library/windowsazure/ff795779.aspx#uploadの手順に従い、ServiceConfiguration.Cloud.cscfgに次のような内容を含めます。

<Certificates>
  <Certificate name="www.myserver.com" 
    thumbprint="ad513653e4560fe4afce5bdac88c744fbcf93525" 
    thumbprintAlgorithm="sha1"/>
</Certificates>

およびServiceDefinition.build.csdefには、たとえば

<Endpoints>
  <InputEndpoint name="HttpIn" port="80" protocol="tcp" />
  <InputEndpoint name="HttpsIn" protocol="tcp" port="443"/>
</Endpoints>
<Certificates>
  <Certificate name="www.myserver.com" 
    thumbprint="AD513653E4560FE4AFCE5BDAC88C744FBCF93525" 
    thumbprintAlgorithm="sha1" />
</Certificates>

この拇印のある証明書は、Azure Platform Webコンソールを介してホステッドサービスにアップロードされ、Azureインスタンスの起動時に、証明書がIISのサーバー証明書に展開されます。インスタンスにRDPを実行し、IISコンソールのサーバー証明書で証明書を確認できます。

Java側から..。

Javaで「Windows-MY」キーストアに接続する場合

KeyStore keystore = KeyStore.getInstance("Windows-MY");
keystore.load(null, null);

次に、使用可能なキーストアを探します。この証明書は表示されません。AzureインスタンスにRDPを実行し、certmgr.mscを介して手動で証明書を追加すると、Javaプロセスは「Windows-MY」キーストアを使用して証明書を認識します。

Java /Azure証明書の統合の例がたくさんあります-例: http: //blogs.msdn.com/b/avkashchauhan/archive/2010/11/07/adding-ssl-https-security-with-tomcat-java-solution- in-windows-azure.aspx-証明書がキ​​ーストアファイルにエクスポートされ、azureパッケージとともに展開されますが、パッケージビルドとは別に、標準のAzureを使用して証明書を管理できる方法を見つけたいと思います。証明書管理アプローチ。使用する証明書は他の当事者によって管理されているため、アクセスできないことに注意してください。

また、.netコードを使用してこの証明書を取得する方法の例も示しています。たとえば、WindowsAzureのコードで証明書を取得するにはどうすればよいですか

このAzureでデプロイされた証明書にJavaから直接アクセスするにはどうすればよいですか?「Windows-MY」以外のキーストアに展開されていますか?IISのサーバー証明書からJavaから直接証明書にアクセスできますか?

ありがとう、

更新(5月20日)

ServiceDefinition.csdefファイルのstoreLocation="CurrentUser"を使用するためのヒントを誰かから受け取りました。これは、その仕事をする必要があるように聞こえました。

<Certificate name="www.myserver.com" 
  storeLocation="CurrentUser" storeName="My" />

ただし、何らかの理由で、Azureは証明書をCurrentUserストアに展開していないようです。storeLocationがLocalMachineに設定されている場合(および上記のように)、サーバーにデプロイされた証明書のみが表示されます。これは、Javaがアクセスできないように見えるローカルマシン証明書ストアになります。

4

2 に答える 2

1

この記事によると、Windows の可能な証明書ストア プロバイダーとして Windows-MY と Windows-ROOT のみがあります。Azure マネージド証明書はローカル マシンの個人証明書に格納されているため、キーストア API を介してアクセスできないようです。

回避策として、ネイティブ API (JNI またはjna など) を介して証明書を取得するか、Java プロセスに必要な証明書を提供するラッパー実行可能ファイル (ネイティブ c++ または .net で記述) を作成することができます。

于 2012-05-17T09:28:25.683 に答える
0

次のようなことができる場合があります。

Windows キーストアから中間 CA への Java アクセス?

その中で、彼らは他のストアからの証明書を使用して証明書チェーンを構築しています。それを使用すると、証明書にアクセスできるようになると思います。

于 2012-05-17T13:55:00.657 に答える