2011-06-30 13 views
1

Windows上でWS-ATトランザクションを設定しようとすると、秘密鍵がないため特定のSSL証明書を使用できないというシステムの主張があります。自己署名証明書とStartSSLで提供された証明書を試しました。秘密鍵でSSL証明書を生成するにはどうすればよいですか?

拡張機能のおかげで、添付の秘密鍵で証明書を作成することができると思いますが、そのようなツールはありますか?または、glassfishキーストアからエクスポートできるソフトウェアがありますか?

+0

証明書をどのように保存しましたか? (p12またはpfxおそらく?) – Bruno

+0

あなたはBrunoを救ってどういう意味ですか?私はglassfishから証明書をエクスポートし、それをMMCからWindowsにインポートしました。私はこのトルコのhttp://dlc.sun.com.edgesuiteにかなり従っています。net/javaee5/screencasts/wstx-screencast-1/23:05から証明書のある部分が始まります... WS-ATタブを見ると、すべてが失敗したときの部分です。 –

+0

"エクスポート"必要に応じて:証明書がどのように作成されたか、および/または最初に証明書(およびその秘密鍵)をどのように保持しましたか?ブラウザ内で生成されたか、証明書要求(CSR)を使用していましたか?それがCSRであれば、プライベートキーはどこですか?グラスフィッシュとは何が関係していますか?既存のGlassfishサーバーでその証明書(秘密鍵付き)を使用していますか?もしそうなら、それは例えばJKSまたはP12キーストアにありますか? – Bruno

答えて

1

コメントに記載されているスクリーンキャストに表示されているtiny.cerは、Windows側でインポートするサーバー証明書です。 Windows側では、その証明書の秘密鍵は必要ありません。

mrbean.cerは、サーバー側のjksにインポートする証明書です。その証明書の秘密鍵はサーバー側にも必要ありません。

秘密鍵が不足していると不平を言うシステムはありますか? Windows側の場合は、MMC証明書スナップインで証明書の詳細を確認します。スクリーンキャストの25:26に、tini.east.sun.com証明書の証明書の詳細が表示されます。証明書に関連付けられた秘密鍵は存在しないことに注意してください。これは問題ありません。

スクリーンキャストには表示されません(または私はそれをすばやくスキャンしませんでした)は、Windows側のmrbean証明書の詳細です。 Windowsシステムで秘密鍵が必要です。サーバーにSSLを使用して接続する場合は、mrbean証明書を使用しています。 Windowsシステム上のその証明書については、証明書の詳細タブにキーの小さなアイコンと「この証明書に対応する秘密鍵があります」というテキストが表示されます。

この秘密鍵をエクスポートしたり、サーバにコピーする必要はありません。実際には、この秘密鍵をコピーしたくない場合もあります(この秘密鍵は証明書の一部ではありません)。サーバーへの秘密鍵。 mrbean証明書の秘密鍵をWindowsシステム上に安全に保存する必要があります。

ただし、SSL接続用のクライアント証明書として接続する場合は、MMCスナップインに表示される秘密キーと、さらにSSLを実行しているWindowsアカウントが必要です接続は秘密鍵にアクセスできる必要があります。 Windows側でクライアント証明書(mrbean)をインポートすると、ログインしているWindowsアカウントは秘密鍵にアクセスできますが、接続しているコードが別のWindowsアカウントで実行されている場合はアクセスしません。

MMCスナップインで証明書(mrbean)を右クリックし、[すべてのタスク - >秘密キーの管理]を選択します。そこから、SSL接続を行っているWindowsアカウントへの読み取りアクセス権を与えることができます。 (秘密鍵の読み取りアクセス権を与えるものは誰でも、その証明書を使用してSSL経由で接続することができます)

私はこれが問題だとは思わないが、それがWindows秘密鍵の不足を訴え、SSL接続のクライアント証明書が必要な場合は、(a)証明書に関連付けられた秘密鍵があること、(b)証明書を使用する必要のあるWindowsアカウントSSLを介して接続すると、秘密鍵にアクセスできます。 Windowsシステム上のMMCスナップインで両方の項目を確認できます。

いずれの方向にも秘密鍵(クライアントまたはサーバー)をコピーしないでください。

+0

非常に有望なコメント。 Brunoがコメントで提案したように、私はhttp://social.msdn.microsoft.com/Forums/en/windowstransactionsprogramming/thread/7f6e29f2-2a1a-487a-861d-ed​​ff51f2753fに従って証明書を生成しました。SSL接続に使用しています。私はglassfish側の信頼できる証明書にも追加しました(そしてglassfishの証明書をWindowsストアに追加しました...)。コンシューマーはWebサービスを見ていますが、javax.net.ssl.SSLHandshakeExceptionが発生するので、私の設定についてはまだ何かが残っているはずです。 –

関連する問題