陽気:クライアント証明書を使用した SSL SOAP Web サービスの呼び出し
-
06-09-2019 - |
質問
このシナリオは、Mirth 内から外部 SSL SOAP Web サービスを呼び出すことに関するものです。Web サービスには、クライアント証明書とともに SSL/TLS 接続が必要です。
その目的は、組み込みの SOAP 送信先を使用してリモートの安全な Web サービスを呼び出し、何らかの方法でそのクライアント証明書を含めることです。
最初にそのクライアント証明書を Java ランタイムにインストールする必要があることを理解しています。これは、Java ランタイムの証明書ストアまたは Jetty 証明書ストア内にある可能性があります。
プラットフォーム:
- Windows 2003 SP2
- マース1.8
- Java jre1.5.0_09
質問:SSL で保護された Web サービスを呼び出すときに、Mirth SOAP Sender にクライアント証明書 (*.cer) を含めるようにするには、どのような構成手順 (Mirth、JRE 証明書ストアなど) をお勧めしますか?
解決 2
マース1.8は、クライアント証明書を送信することはできません。
他のヒント
Javaランタイム、またはより具体的には、SunのJSSEプロバイダーは、クライアント証明書を提示します。あなたは JSSEリファレンスの詳細を読むことができますガイド、のが、重要な特性はjavax.net.ssl.keyStore
とjavax.net.ssl.keyStorePassword
されます。
このアプローチにはいくつかの欠点があります。まず、システムプロパティとしてキーストアのパスワードを設定することで実行されている任意のコードにそれがアクセスできるようになり、プロセスがSecurityManager
がインストールされている場合、これは制御することができます。第二に、これらの設定は、「デフォルト」SSLContext
によって作成されたSSLソケットのために使用されます。あなたが異なるエンドポイントごとに異なる資格情報が必要な場合は、マース固有のソリューションが必要になります。
いいえ出発点は質問で指定されていなかったが、ゼロから始める場合、最も簡単な方法は、新しいJavaキーストア(「JKS」形式)を作成し、新しい鍵ペアおよびCSRを生成することです。 CAにCSRを送信し、戻って、証明書を取得した後、同じキーストアにインポートします。そのキーストアが使用する準備ができています。
証明書がすでに利用可能である場合は、は、PKCS#12形式(.P12または.PFXファイル)で、それに対応する秘密鍵で保存してある可能性が高いです。これらは、Javaアプリケーションで直接使用することができますが、javax.net.ssl.keyStoreType
プロパティが"PKCS12"
に設定する必要があります。
私は遅く、このために、ここで少しだが、実際にそれができると可能性があります。 JVMにいくつかの設定パラメータを送信することにより、あなたは基礎となるSOAPエンジンがhttpsに切り替えて、適切な証明書を提供するために得ることができます。
タグVMを構成するために設定するパラメータをの詳細については、この質問を参照してください。
あなたはの世話をするためにかなりの数のものがあるわかります。あなたが適切にあなたの証明書を構成したら、通常、HTTPSおよびクライアント認証は、「ただ働き」必要があります。しかし、いくつかのサーバーには、注意する必要がありますのでB2Bスタイルのクライアントに非常に友好的でないことそこにあります。
私はサーバが動作するようにそれらのいずれかを得ることができた証明書を使用してJDK 6_21といくつかの調整を使用していますが、サーバー上で適切に設定するのに約15分かかり、何かのために私たちの側に長く、苦痛だった。
ここに(無愛想サーバへのクライアント側の認証)この非常に問題に対処する別の質問をされます。